【问题标题】:How can I bind DataGrid row count after a CollectionView filter is applied?应用 CollectionView 过滤器后如何绑定 DataGrid 行数?
【发布时间】:2011-01-05 22:43:22
【问题描述】:

之前在 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 显示过滤结果的行数?

【问题讨论】:

    标签: wpf data-binding datagrid collectionviewsource


    【解决方案1】:

    问题是过滤器只应用于集合视图,而不是项目源。

    你可以做两件事之一:

    1. 绑定到集合视图计数(确保其 INPC)。
    2. 绑定到项目控件 items.count 属性。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-02
      • 2013-06-20
      • 2017-11-04
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多