如何根据集合中的成员资格过滤UltraGrid

时间:2013-05-06 21:52:46

标签: vb.net infragistics ultragrid

我目前正在使用我需要根据几种不同条件过滤UltraGrid的程序。

我的问题是我还没有找到表达过滤器中某个条件的方法。我想要一个条件来说“如果此行中的值是某个集合的成员,则返回true”。

例如,如果我的组是一个数组[1,2,3,4,5],那么一些示例结果将是:

value = 1: True
value = 2: True
value = 6: False
value = -1: False

有人知道我这样做的一种简单方法吗?如果可行,我宁愿不创建自定义过滤器。 FilterComparisionOperator page上的任何其他内容似乎都与我正在寻找的内容相匹配。

1 个答案:

答案 0 :(得分:2)

好的,我应该仔细阅读。看起来每个UltraGridBand都包含一个ColumnFiltersCollection。因此,要获得所需的行为,可以为每个所需条件创建单独的ColumnFilter。在这种情况下,一个条件将被定义为:

Dim columnFilter As ColumnFilter
columnFilter.LogicalOperator = FilterLogicalOperator.Or

For Each element In MyCollection
    columnFilter.FilterConditions.Add(FilterComparisionOperator.Equals, element)
Next

然后你可以做:

Band.ColumnFilters.Add(columnFilter)
Band.ColumnFilters.Add(otherColumnFilter1)
Band.ColumnFilters.Add(otherColumnFilter2)
Band.ColumnFilters.Add(otherColumnFilter3)

请参阅文档(特别是备注)here。此代码可能不是100%正确 - 尚未测试。应该明白这个想法。