/// <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; } }
/// <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"); }