确定xamDataGrid上的过滤器状态

时间:2013-02-13 18:01:50

标签: wpf filter infragistics xamdatagrid

在我正在开发的WPF应用程序中,我想以编程方式确定xamDataGrid是否配置了任何过滤器。

我已经为Excel配置了导出功能,并希望快速检查以确定过滤器是否处于活动状态,如果过滤器处于活动状态,那么我将向用户显示导出已过滤行的选项或不...

我找不到合适的班级成员。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

找到了女孩的答案...

    var activeFilterCount = xamDataGrid1.FieldLayouts[0].RecordFilters.Sum(recordFilter => recordFilter.Conditions.Count);

答案 1 :(得分:1)

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

XamDataGrid with multiple layouts