public void StartSynchronizingList() { IList synchronizedSelectedItems = MultiSelectorBehaviours.GetSynchronizedSelectedItems((DependencyObject)this._multiSelector); if (synchronizedSelectedItems == null) { return; } this._synchronizer = new TwoListSynchronizer(MultiSelectorBehaviours.SynchronizationManager.GetSelectedItemsCollection(this._multiSelector), synchronizedSelectedItems); this._synchronizer.StartSynchronizing(); }
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(); }