0

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

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

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

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

有人知道我忽略的简单方法吗?如果可行,我不希望创建自定义过滤器。FilterComparisionOperator 页面上没有其他内容与我正在寻找的内容相匹配。

4

1 回答 1

2

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

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)

请参阅此处的文档(特别是备注)。此外,此代码可能不是 100% 正确 - 尚未对其进行测试。不过应该明白这个想法。

于 2013-05-07T02:30:18.123 回答