private static void OnSynchronizedSelectedItemsChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) { if (e.OldValue != null) { SynchronizationManager synchronizer = GetSynchronizationManager(dependencyObject); synchronizer.StopSynchronizing(); SetSynchronizationManager(dependencyObject, null); } IList list = e.NewValue as IList; Selector selector = dependencyObject as Selector; // check that this property is an IList, and that it is being set on a ListBox if (list != null && selector != null) { SynchronizationManager synchronizer = GetSynchronizationManager(dependencyObject); if (synchronizer == null) { synchronizer = new SynchronizationManager(selector); SetSynchronizationManager(dependencyObject, synchronizer); } synchronizer.StartSynchronizingList(); } }
private static void OnSynchronizedSelectedItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (e.OldValue != null) { SynchronizationManager synchronizer = GetSynchronizationManager(d); synchronizer.StopSynchronizing(); SetSynchronizationManager(d, null); } var list = e.NewValue as IList; var selector = d as Selector; if (list != null && selector != null) { SynchronizationManager synchronizer = GetSynchronizationManager(d); if (synchronizer == null) { synchronizer = new SynchronizationManager(selector); SetSynchronizationManager(selector, synchronizer); } synchronizer.StartSynchronizing(); } }