/// <summary> /// Finds TableViewScrollViewer in visual tree and adds handler to it's "ScrollChanged" event. /// Also adds handler to "Unloaded" event of cell editor to remove handlers when it will be unloaded. /// </summary> private void _SubscribeEvents() { Debug.Assert(_cellEditor != null); Debug.Assert(_popup != null); TableViewScrollViewer scrollViewer = XceedVisualTreeHelper.FindScrollViewer(_cellEditor); if (scrollViewer != null) { _scrollViewer = scrollViewer; _scrollViewer.ScrollChanged += new ScrollChangedEventHandler(_ScrollViewerScrollChanged); } else { // Do nothing, because scroll viewer wasn't found. } }
protected override void OnDetachingAndUnloaded() { scrollViewer.ScrollChanged -= ScrollChanged; scrollViewer = null; base.OnDetachingAndUnloaded(); }
protected override void OnAttachedAndLoaded() { scrollViewer = AssociatedObject.FindVisualChildOfType <TableViewScrollViewer>(); scrollViewer.ScrollChanged += ScrollChanged; base.OnAttachedAndLoaded(); }