2

開発中のWPFアプリで、xamDataGridにフィルターが構成されているかどうかをプログラムで判断したいと思います。

Excelへのエクスポート機能を構成しましたが、フィルターがアクティブかどうかを簡単に確認したいと思います。フィルターがアクティブな場合は、フィルターされた行をエクスポートするかどうかをユーザーに示します。 。

適切なクラスメンバーが見つかりません。

何か案は?

4

2 に答える 2

3

答えの男と女を見つけました...

    var activeFilterCount = xamDataGrid1.FieldLayouts[0].RecordFilters.Sum(recordFilter => recordFilter.Conditions.Count);
于 2013-02-13T21:59:09.870 に答える
1

AXamDataGridは、複数のフィールドレイアウト(階層構造)を持つことができます。その場合、最初のものFieldLayoutsだけでなく、すべてを考慮する必要があります。したがって、完全なソリューションは次のとおりです。

 public bool AreFiltersActive()
 {
   int activeFilterCount = 0;
   foreach (FieldLayout f in xamDataGrid.FieldLayouts)
   {
     activeFilterCount+= f.RecordFilters.Sum(recordFilter => recordFilter.Conditions.Count);
     //retrieve filter count per layout
   }        
   return activeFilterCount > 0;
   //If any fieldlayout has any filter active then the sum will be more than 0
 }

Filtersに格納されるのFieldLayoutには理由がありXamDataGridます。

以前のバージョンでは、それらはRecordManger に対して保存されgridます。したがって、これはすべてを繰り返すための完全なソリューションFieldLayoutsです。

グリッドの下のように:Multiple Layout and Filters can be applied on every Layout/Level

複数のレイアウトを持つXamDataGrid

于 2015-03-19T10:56:54.430 に答える