我是Silverlight 4和PagedCollectionView的新手。我知道可以在PCV中添加过滤器,例如
pvc.Filter = new Predicate(FilterProjectId);
其中pvc是一个填充的PagedCollectionView。
我需要做的是将多个过滤器堆叠到PCV上,因为我有一个搜索屏幕,其上有大约6个字段和一个绑定到PCV的DataGrid。根据选择的组合框,当按下搜索按钮时,我需要根据这些选择过滤PCV结果。
我似乎只能接受最后一个过滤器设置。任何人都可以向我提供有关如何堆叠它们的信息吗?
由于
答案 0 :(得分:1)
Filter属性只是一个函数的委托,该函数接受一个对象并返回一个布尔值。该功能可以像您选择的那样简单或复杂。
听起来你只需要一个函数包含一系列if
块,可以根据需要将对象与6个字段中的每一个进行比较,然后返回结果。
关键是没有“过滤器”可以“堆叠”,只需编写 过滤器功能即可完成所有操作。
答案 1 :(得分:1)
请参阅我对此问题的回答: How do I dynamically construct a predicate method from an expression tree?
我正在使用这种技术与PCV。效果很好。