0

私は現在、いくつかの異なる条件に基づいて UltraGrid をフィルタリングする必要がある場所を使用してプログラムに取り組んでいます。

私の問題は、フィルター内の条件の 1 つを表現する方法をまだ見つけていないことです。条件の 1 つに、「この行の値が特定のコレクションのメンバーである場合、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 を作成できます。この場合、1 つの条件は次のように定義されます。

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 に答える