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;