Beispiel #1
0
        /// <summary>
        /// Determines whether [is enabled changed] [the specified sender].
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param>
        private static void IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            Selector selector = sender as Selector;

            if (selector == null)
            {
                return;
            }
            bool enabled = (bool)e.NewValue;

            DependencyPropertyDescriptor itemsSourceProperty =
                DependencyPropertyDescriptor.FromProperty(Selector.ItemsSourceProperty, typeof(Selector));
            IMultiSelectCollectionView collectionView = selector.ItemsSource as IMultiSelectCollectionView;

            if (enabled)
            {
                if (collectionView != null)
                {
                    collectionView.SetSelectOnly(SelectOnly);
                    collectionView.AddControl(selector);
                }

                itemsSourceProperty.AddValueChanged(selector, ItemsSourceChanged);
            }
            else
            {
                if (collectionView != null)
                {
                    collectionView.SetSelectOnly(SelectOnly);
                    collectionView.RemoveControl(selector);
                }

                itemsSourceProperty.RemoveValueChanged(selector, ItemsSourceChanged);
            }
        }