Как было сказано выше, FilterPresenter не взаимодействует с элементом управления ItemsControl непосредственно. При внедрении FilterControl в пользовательский элемент управления достаточно, чтобы FilterControl был подключен к тому же представлению коллекции, которое использует Ваш элемент управления. Для интерактивного использования быстрого фильтра необходимо, чтобы Ваш элемент управления обрабатывал события изменения подключенной CollectionView.

Форма OrdersView представляет собой пользовательский элемент управления, выводящий результаты LINQ запроса к базе с использованием CollectionView. Для добавления фильтра достаточно в форму добавить ColumnFilter:

How use.

OrdersView.xaml
<bsFilter:ColumnFilter Key="Employee"
                      ParentCollection="{Binding DataContext.OrdersCollectionView,
                          ElementName=LayoutRoot}">
</bsFilter:ColumnFilter>

How work.

 

Свойство ColumnFilter.ParentCollection привязываем к коллекции, для которой устанавливается фильтр, а в в качестве значения ColumnFilter.Key указываем наименование свойства элемента перечиления коллекции, которое будет использовано для быстрого фильтра. При подключении коллекции ColumnFilter анализирует тип элементов перечисления и делает попытку поиска свойства с именем, совпадающим со значением Key. В случае успеха, формируется набор фильтров для данного свойства, используя инициализаторы, предоставляемые экземпляром ColumnFilter.FilterInitializersManager.

How look.

Pic7

А вот так ItemsFilter можно добавить в ComboBox.

Last edited Nov 8, 2013 at 7:31 PM by Mishkin, version 6