開発中のWPFアプリで、xamDataGridにフィルターが構成されているかどうかをプログラムで判断したいと思います。
Excelへのエクスポート機能を構成しましたが、フィルターがアクティブかどうかを簡単に確認したいと思います。フィルターがアクティブな場合は、フィルターされた行をエクスポートするかどうかをユーザーに示します。 。
適切なクラスメンバーが見つかりません。
何か案は?
開発中のWPFアプリで、xamDataGridにフィルターが構成されているかどうかをプログラムで判断したいと思います。
Excelへのエクスポート機能を構成しましたが、フィルターがアクティブかどうかを簡単に確認したいと思います。フィルターがアクティブな場合は、フィルターされた行をエクスポートするかどうかをユーザーに示します。 。
適切なクラスメンバーが見つかりません。
何か案は?
答えの男と女を見つけました...
var activeFilterCount = xamDataGrid1.FieldLayouts[0].RecordFilters.Sum(recordFilter => recordFilter.Conditions.Count);
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