Пример #1
0
        /// <summary>
        ///     Updates the filter state.
        /// </summary>
        protected virtual void UpdateFilterInternal()
        {
            FilterDelegate <T> filter = Filter;

            if (filter == FilterableItemsSource.Filter)
            {
                FilterableItemsSource.UpdateFilter();
            }
            else
            {
                FilterableItemsSource.Filter = filter;
            }
            if (SelectedItem != null && filter != null && !filter(SelectedItem))
            {
                SelectedItem = null;
            }
        }
Пример #2
0
        /// <summary>
        ///     Updates the current <see cref="IGridViewModel{T}.ItemsSource" />.
        /// </summary>
        /// <param name="value">The new items source value.</param>
        protected virtual void UpdateItemsSourceInternal(IEnumerable <T> value)
        {
            value        = OnItemsSourceChanging(value);
            SelectedItem = null;

            if (value == null)
            {
                _originalData.Clear();
            }
            else
            {
                using (FilterableItemsSource.SuspendNotifications())
                {
                    _originalData.Clear();
                    _originalData.AddRange(value);
                }
            }
            UpdateFilter();
            OnItemsSourceChanged(value);
            RaiseItemsSourceChanged(value);
            OnPropertyChanged("ItemsSource");
            OnPropertyChanged("OriginalItemsSource");
        }