Infragistics|Ultimate UI for WPF|如何使用 XamDataGrid C# 程式碼進行篩選 - 當您只想保留那些與特定列中的多個條件之一相符的內容時

infragistics log


如果要在 XamDataGrid 中的程式碼中進行篩選,並且只想保留那些與特定列中的多個條件之一相符的內容,請使用跨欄位記錄篩選功能。 

例如,如果您想將「部門」列中的值保留為「人力資源」或「管理」並過濾其他值,

1. 在 XamDataGrid 的 FieldSettings 中將 AllowCrossFieldRecordFiltering 設定為 True 以啟用跨欄位記錄篩選功能。

2. 為 FieldLayout 配置 CrossFieldRecordFilters。

  1. 建立 CrossFieldRecordFilterGroup 並將此處新增的每個過濾條件設定為使用 OR 進行評估。
  2. 建立一個過濾條件,其中“部門”列的值等於“人力資源”,並將其新增至 CrossFieldRecordFilterGroup。
  3. 建立一個過濾條件,其中“department”列的值等於“Administration”,並將其新增至 CrossFieldRecordFilterGroup。
  4. 在 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;


執行結果


延伸閱讀
aa71435723的大頭照
Winston

Eggplant DAI 自動化測試專家。

留言