Как связать число строк 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 ответ
Решение
Проблема в том, что фильтр применяется только к представлению коллекции, а не к источнику элемента.
Вы можете сделать одну из двух вещей:
- привязать к количеству представлений коллекции (убедитесь, что его INPC).
- привязка к элементу управления items.
Таким образом, количество будет таким же, как и у пользователя.