2013-02-13 2 views
2

В приложении WPF, которое я разрабатываю, я хотел бы программно определить, имеет ли конфигурация xamDataGrid какие-либо фильтры.Определить статус фильтра на xamDataGrid

Я настроил функцию экспорта в Excel и хотел бы выполнить быструю проверку, чтобы определить, активен или нет фильтр, если фильтр активен, тогда я представлю пользователю возможность экспортировать отфильтрованные строки или нет ...

Я не могу найти подходящих учеников.

Любые идеи?

ответ

3

нашел ответ ребята русские девушки ...

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

A 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

 Смежные вопросы

  • Нет связанных вопросов^_^