private static void OnCommandPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var element = (FrameworkElement)d; if (element == null) { return; } element.MouseMove += (o, args) => { var viewer = VisualHelper.GetScrollViewer(element); if (viewer == null) { return; } var command = GetLoadMoreCommand(element); if (command == null) { return; } var progress = viewer.VerticalOffset / viewer.ScrollableHeight; if (progress >= 0.6) { command.Execute(null); } }; }