確定過濾器的狀態在一個WPF應用程序,我發展,我想以編程方式確定是否xamDataGrid具有配置或沒有任何過濾器。在xamDataGrid
我已配置導出功能到Excel,很想做一個快速檢查,以確定是否一個過濾器或者不是,如果過濾器是活動的,那麼我會向用戶呈現導出篩選行選項或不...
我找不到任何合適的類成員。
任何想法?
確定過濾器的狀態在一個WPF應用程序,我發展,我想以編程方式確定是否xamDataGrid具有配置或沒有任何過濾器。在xamDataGrid
我已配置導出功能到Excel,很想做一個快速檢查,以確定是否一個過濾器或者不是,如果過濾器是活動的,那麼我會向用戶呈現導出篩選行選項或不...
我找不到任何合適的類成員。
任何想法?
找到了答案傢伙ñ女孩...
var activeFilterCount = xamDataGrid1.FieldLayouts[0].RecordFilters.Sum(recordFilter => recordFilter.Conditions.Count);
一個XamDataGrid
可以有多個領域的佈局(分層結構)更多。在這種情況下,你需要考慮所有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