wpf - 应用 CollectionView 筛选器后如何绑定(bind) DataGrid 行计数?

标签 wpf data-binding datagrid collectionviewsource

之前在 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
}

当过滤器从 View 中删除项目时,上面的 TextBlock 仍然显示未过滤计数。如何让上面的 TextBlock 显示过滤结果的行数?

最佳答案

问题在于过滤器仅应用于 Collection View ,而不应用于项目源。

您可以执行以下两件事之一:

  1. 绑定(bind)到 Collection View 计数(确保其 INPC)。
  2. 绑定(bind)到项目控件的 items.count 属性。

这样计数将与用户看到的相同。

关于wpf - 应用 CollectionView 筛选器后如何绑定(bind) DataGrid 行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609953/

相关文章:

首先将 WPF 数据绑定(bind)到数据网格和 Entity Framework 数据库

c# - WPF 自定义文本框控件未正确绑定(bind)文本

c# - 如何在列表框中设置文本 block 的背景颜色?

c# - Binding Mode=TwoWay 仅适用于 "one"方式

wpf - 数据表列表/数组问题

c# - Puppeteer 启动后软件卡住

c# - 如何在 WPF 中从 mainwindow.xaml 导航到 page.xaml

c# - InvalidOperationException - TwoWay 或 OneWayToSource 绑定(bind)无法对只读属性起作用

c# - 使 WPF 触发器使用任何属性

wpf - MVVM 框架 : Performance