/// <summary> /// Updates a filter. /// </summary> protected virtual void UpdateFilterInternal(out bool shouldRaiseEvents) { FilterDelegate <T> currentFilter = _filter; if (currentFilter != null) { _filterCollection.Clear(); for (int index = 0; index < Items.Count; index++) { T item = Items[index]; if (currentFilter(item)) { _filterCollection.Add(index, item); } } } EventsTracker.AddEvent(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); shouldRaiseEvents = true; }
private void UpdateFilterInternal(OrderedListInternal <int, T> filterCollection, FilterDelegate <T> filter, NotificationType notificationType) { var currentFilter = filter; filterCollection.Clear(); var items = GetItems(); if (currentFilter != null) { for (var index = 0; index < items.Count; index++) { var item = items[index]; if (currentFilter(item)) { filterCollection.Add(index, item); } } } OnCollectionChanged(Empty.ResetEventArgs, notificationType); }