Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Items the source changed.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        static void ItemsSourceChanged(object sender, EventArgs e)
        {
            Selector selector = sender as Selector;

            if (selector == null)
            {
                return;
            }

            if (GetIsEnabled(selector))
            {
                IMultiSelectCollectionView oldCollectionView;
                IMultiSelectCollectionView newCollectionView = selector.ItemsSource as IMultiSelectCollectionView;
                _collectionViews.TryGetValue(selector, out oldCollectionView);

                if (oldCollectionView != null)
                {
                    oldCollectionView.RemoveControl(selector);
                    _collectionViews.Remove(selector);
                }

                if (newCollectionView != null)
                {
                    newCollectionView.AddControl(selector);
                    _collectionViews.Add(selector, newCollectionView);
                }
            }
        }
        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);
            }
        }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        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);
                }
            }
        }
Beispiel #6
0
        private static IMultiSelectCollectionView TryGetMultiSelectCollectionView(object obj)
        {
            IMultiSelectCollectionView collectionView = obj as IMultiSelectCollectionView;

            return(collectionView);
        }