Wpf 应用CollectionView筛选器后,如何绑定DataGrid行数?

Wpf 应用CollectionView筛选器后,如何绑定DataGrid行数?,wpf,data-binding,datagrid,collectionviewsource,Wpf,Data Binding,Datagrid,Collectionviewsource,在CollectionView上实现过滤之前,我使用它来显示datagrid中的行数 <TextBlock Text="{Binding ElementName=dataGrid1, Path=ItemsSource.Count}" /> 我已经实现了一个过滤器 ICollectionView cvs = CollectionViewSource.GetDefaultView(datagrid1.ItemsSource); cvs.Filter = new Predicate&

在CollectionView上实现过滤之前,我使用它来显示datagrid中的行数

<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
}
ICollectionView cvs=CollectionViewSource.GetDefaultView(datagrid1.ItemsSource);
cvs.Filter=新谓词(FilterMethod);
...
公共布尔筛选器方法(对象项){
//有条件地返回true/false
}

当过滤器从视图中移除项目时,上面的文本块仍然显示未过滤的计数。如何让上面的文本块显示筛选结果的行数?

问题是筛选仅应用于集合视图,而不应用于项目源

您可以执行以下两种操作之一:

  • 绑定到集合视图计数(确保其INPC)
  • 绑定到items控件items.count属性
  • 这样,计数将与用户看到的相同