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();
        }