Как связать число строк DataGrid после применения фильтра CollectionView?

До реализации фильтрации в CollectionView я использовал это для отображения количества строк в сетке данных;

<TextBlock Text="{Binding ElementName=dataGrid1, Path=ItemsSource.Count}" />

С тех пор я реализовал фильтр как таковой;

ICollectionView cvs = CollectionViewSource.GetDefaultView(datagrid1.ItemsSource);
cvs.Filter = new Predicate<object>(FilterMethod);
...
public bool FilterMethod(object item) {
    // conditionally returns true/false
}

Текстовый блок выше по-прежнему показывает нефильтрованный счетчик, когда визуально фильтр удаляет элементы из поля зрения. Как я могу получить TextBlock выше, чтобы показать количество строк в результате фильтра?

1 ответ

Решение

Проблема в том, что фильтр применяется только к представлению коллекции, а не к источнику элемента.

Вы можете сделать одну из двух вещей:

  1. привязать к количеству представлений коллекции (убедитесь, что его INPC).
  2. привязка к элементу управления items.

Таким образом, количество будет таким же, как и у пользователя.

Другие вопросы по тегам