void AssociatedObjectLoaded(object sender, RoutedEventArgs e) { AssociatedObject.Loaded -= AssociatedObjectLoaded; _treeviewScrollViewer = DependencyObjectExtensions.GetChildByType(AssociatedObject, typeof(ScrollViewer)) as ScrollViewer; //Juries - Removed, instead implement a collection changed handler, to only scroll to end when new items are added. if (_treeviewScrollViewer != null) { _treeviewScrollViewer.IsDeferredScrollingEnabled = true; _treeviewScrollViewer.PreviewMouseDown += (o, args) => _hasUserScrolled = true; _treeviewScrollViewer.ScrollChanged += TreeviewScrollViewerScrollChanged; } }