如果要在 XamDataGrid 中的程式碼中進行篩選,並且只想保留那些與特定列中的多個條件之一相符的內容,請使用跨欄位記錄篩選功能。
例如,如果您想將「部門」列中的值保留為「人力資源」或「管理」並過濾其他值,
1. 在 XamDataGrid 的 FieldSettings 中將 AllowCrossFieldRecordFiltering 設定為 True 以啟用跨欄位記錄篩選功能。
2. 為 FieldLayout 配置 CrossFieldRecordFilters。
- 建立 CrossFieldRecordFilterGroup 並將此處新增的每個過濾條件設定為使用 OR 進行評估。
- 建立一個過濾條件,其中“部門”列的值等於“人力資源”,並將其新增至 CrossFieldRecordFilterGroup。
- 建立一個過濾條件,其中“department”列的值等於“Administration”,並將其新增至 CrossFieldRecordFilterGroup。
- 在 Fieldlayout 中將 CrossFieldRecordFilterGroup 設定為 CrossFieldRecordFilters。
<igDP:XamDataGrid ...> <igDP:XamDataGrid.FieldSettings> <igDP:FieldSettings AllowCrossFieldRecordFiltering="True" /> </igDP:XamDataGrid.FieldSettings> ... </igDP:XamDataGrid>
// CrossFieldRecordFilterGroupのインスタンスを作成する。 // この中に入る各フィルター条件を"OR"で評価する設定をする。 CrossFieldRecordFilterGroup filterGroup = new CrossFieldRecordFilterGroup(); filterGroup.LogicalOperator = Infragistics.Windows.Controls.LogicalOperator.Or; // "department"列の値が"人事"と等しいものというフィルター条件を作成し、CrossFieldRecordFilterGroupに追加する。 CrossFieldRecordFilter filter1 = new CrossFieldRecordFilter() { FieldName = "department", Operator = Infragistics.Windows.Controls.ComparisonOperator.Equals, Operand = "人事" }; filterGroup.Filters.Add(filter1); // 同様に、"事務"と等しいものというフィルター条件を作成し、CrossFieldRecordFilterGroupに追加する。 CrossFieldRecordFilter filter2 = new CrossFieldRecordFilter() { FieldName = "department", Operator = Infragistics.Windows.Controls.ComparisonOperator.Equals, Operand = "事務" }; filterGroup.Filters.Add(filter2); // CrossFieldRecordFilterGroupをFieldlayoutのCrossFieldRecordFiltersとして設定する。 fieldLayout1.CrossFieldRecordFilters = filterGroup;
執行結果
