private static void OnSynchronizedSelectedItemsChanged( DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) { if (e.OldValue != null) { MultiSelectorBehaviours.GetSynchronizationManager(dependencyObject).StopSynchronizing(); MultiSelectorBehaviours.SetSynchronizationManager(dependencyObject, (MultiSelectorBehaviours.SynchronizationManager)null); } IList newValue = e.NewValue as IList; Selector selector = dependencyObject as Selector; if (newValue == null || selector == null) { return; } MultiSelectorBehaviours.SynchronizationManager synchronizationManager = MultiSelectorBehaviours.GetSynchronizationManager(dependencyObject); if (synchronizationManager == null) { synchronizationManager = new MultiSelectorBehaviours.SynchronizationManager(selector); MultiSelectorBehaviours.SetSynchronizationManager(dependencyObject, synchronizationManager); } synchronizationManager.StartSynchronizingList(); }
private static void SetSynchronizationManager( DependencyObject dependencyObject, MultiSelectorBehaviours.SynchronizationManager value) { dependencyObject.SetValue(MultiSelectorBehaviours.SynchronizationManagerProperty, (object)value); }