new static void IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e) { Selector selector = sender as Selector; bool enabled = (bool)e.NewValue; if (selector != null) { DependencyPropertyDescriptor itemsSourceProperty = DependencyPropertyDescriptor.FromProperty(Selector.ItemsSourceProperty, typeof(Selector)); IMultiSelectCollectionView collectionView = selector.ItemsSource as IMultiSelectCollectionView; if (enabled) { if (collectionView != null) { collectionView.AddControl(selector, GetMaxNumSelectedItem(selector)); } itemsSourceProperty.AddValueChanged(selector, ItemsSourceChanged); } else { if (collectionView != null) { collectionView.RemoveControl(selector); } itemsSourceProperty.RemoveValueChanged(selector, ItemsSourceChanged); } } }
private static void ItemsSourceChanged(object sender, DependencyPropertyChangedEventArgs e) { Selector selector = sender as Selector; if (GetIsEnabled(selector)) { IMultiSelectCollectionView oldCollectionView = e.OldValue as IMultiSelectCollectionView; IMultiSelectCollectionView newCollectionView = e.NewValue as IMultiSelectCollectionView; oldCollectionView?.RemoveControl(selector); newCollectionView?.AddControl(selector); } }
static void IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e) { Selector selector = sender as Selector; IMultiSelectCollectionView collectionView = selector.ItemsSource as IMultiSelectCollectionView; if (selector != null && collectionView != null) { if ((bool)e.NewValue) { collectionView.AddControl(selector); } else { collectionView.RemoveControl(selector); } } }
private static void OnItemsSourceChanged(object sender, DependencyPropertyChangedEventArgs e) { var selector = sender as Selector; selector.ItemsSource = e.NewValue; if (GetIsEnabled(selector)) { IMultiSelectCollectionView oldCollectionView = TryGetMultiSelectCollectionView(e.OldValue); IMultiSelectCollectionView newCollectionView = TryGetMultiSelectCollectionView(e.NewValue); if (oldCollectionView != null) { oldCollectionView.RemoveControl(selector); } if (newCollectionView != null) { newCollectionView.AddControl(selector); } } }