使用多个条件</t>过滤ObservableCollection <t>

时间:2011-02-25 13:39:25

标签: wpf datagrid filter observablecollection

当我在DataGrid列上的filter_textboxes中输入数据时,如何过滤绑定到WPF DataGrid的ObservableCollection?

有没有使用codeproject libs的简单解决方案......?

2 个答案:

答案 0 :(得分:0)

前段时间我问了一个类似的问题,你可能觉得它很有用:Filter WPF TreeView using MVVM

对于DataGrid,它应该是一种非常类似的方法。基本上,您希望使用ObservableCollection创建CollectionViewSource并将DataGrid绑定到它而不是直接绑定到ObservableCollection,然后只需在用户键入时设置CollectionViewSource的{​​{1}}即可。

答案 1 :(得分:0)

我有一个非常类似的问题,有一个相当简单的解决方案。简而言之:

要将多个过滤器应用于绑定到WPF DataGrid的集合,您应该将CollectionViewSource对象实例化为视图和集合之间的代理(这也适用于其他集合控件)。这样做将允许您为其Filter事件订阅多个过滤器事件处理程序。过滤器按订阅顺序应用,可以通过取消订阅来删除。

如果在代码隐藏或ViewModel中使用了CollectionViewSource.GetDefaultView()静态方法,则会返回ICollectionView的实例,该实例仅支持具有Filter属性的单个过滤器。

您可以在此处找到包含源代码的示例http://www.codeproject.com/Articles/442498/Multi-filtered-WPF-DataGrid-with-MVVM