XamDataGridはフィルター条件を論理演算子でグループ化する高度なフィルタリング機能(クロスフィールド レコード フィルタリング)を提供します。
クロス フィールド レコード フィルタリング (xamDataGrid)
https://jp.infragistics.com/help/wpf/xamdatagrid-crossfieldrecordfiltering
以下は、ID列の値が ‘0’ または(OR) Test1列の値が ‘1’ および(AND) Test2列の値が ‘Item0の条件でフィルタリングを実行するサンプルコードです。
CrossFieldRecordFilterGroup fGroup1 = new CrossFieldRecordFilterGroup();
fGroup1.LogicalOperator = LogicalOperator.Or;
fGroup1.Filters.Add(
new CrossFieldRecordFilter()
{
FieldName = "Id",
Operator = ComparisonOperator.Equals,
Operand = "0"
});
fGroup1.Filters.Add(
new CrossFieldRecordFilter()
{
FieldName = "Test1",
Operator = ComparisonOperator.Equals,
Operand = "1"
});
CrossFieldRecordFilterGroup fGroup2 = new CrossFieldRecordFilterGroup();
fGroup2.LogicalOperator = LogicalOperator.And;
fGroup2.Filters.Add(fGroup1);
fGroup2.Filters.Add(
new CrossFieldRecordFilter()
{
FieldName = "Test2",
Operator = ComparisonOperator.StartsWith,
Operand = "Item0"
});
xamDataGrid1.FieldLayouts[0].CrossFieldRecordFilters = fGroup2;
