private void OnStringFilterChanged(string oldValue, string newValue) { if (ItemsSource != null) { int sourceIndex = 0; int filterIndex = 0; foreach (IDataSourceViewModel model in ItemsSource) { bool passedOld = PassesFilter(model, oldValue); bool passesNew = PassesFilter(model, newValue); if (!passedOld) { if (passesNew) { FilteredItemsSource.Insert(filterIndex++, model); } } else if (!passesNew) { FilteredItemsSource.RemoveAt(filterIndex); } else { ++filterIndex; } ++sourceIndex; } } }
private void OnStringFilterChanged(string oldValue, string newValue) { if (ItemsSource != null) { var sourceIndex = 0; var filterIndex = 0; foreach (var model in ItemsSource) { var passedOld = PassesFilter(model, oldValue); var passesNew = PassesFilter(model, newValue); if (!passedOld) { if (passesNew) { FilteredItemsSource.Insert(filterIndex++, model); } } else if (!passesNew) { FilteredItemsSource.RemoveAt(filterIndex); } else { ++filterIndex; } ++sourceIndex; } } UpdateNoDataSourcesMessage(); }