Как я могу привязать количество строк 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 выше по-прежнему показывает число нефильтрованных, когда визуально фильтр удаляет элементы из поля зрения. Как я могу получить TextBlock выше, чтобы показать количество строк в результате фильтра?


person Stafford Williams    schedule 05.01.2011    source источник


Ответы (1)


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

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

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

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

person Chen Kinnrot    schedule 05.01.2011