Добавление текстового поля фильтра в заголовок Listview в режиме просмотра сетки

#wpf #listview #mvvm #datagrid #filter

#wpf #listview #mvvm #datagrid #Фильтр

Вопрос:

Я посмотрел демонстрационное видео Mole 2010 (отладчик WPF), в котором есть хорошая функция datagrid, где заголовок содержит текстовое поле фильтра, так что вы можете ввести строку и отфильтровать для этого столбца. Вот видео, функция демонстрируется через 3: 00 минут

http://www.youtube.com/watch?v=bgMg61iM9G8amp;feature=player_embedded#at=180

Я заинтересован в репликации этой функции, но я не уверен, как это сделать изящно. Мое приложение — это приложение WPF MVVM EF, это мое первое приложение WPF.

  • Возможно ли создать шаблон для заголовка, в который я также могу добавить текстовое поле и кнопку с крестиком, чтобы содержимое можно было очистить?
  • Если да, то как я мог бы привязать текстовое поле для фильтрации его столбца?
  • Должен ли я скрывать фактическую строку заголовка и создавать искусственную, в которой я добавляю свой собственный заголовок, текстовое поле, кнопку и т.д., А затем привязываю их к свойствам предложения filter, которые я добавляю в свой CollectionViewSource при вводе строки фильтра? Я надеялся избежать этого, чтобы я мог сохранить сортировку, щелкнув заголовок.

Я действительно не знаю, как это запустить. Есть ли какие-нибудь гуру, которые могли бы подсказать, как это можно сделать? Спасибо!

Ответ №1:

Вы могли бы взглянуть на образец приложения BookLibrary WPF Application Framework (WAF). Показано, как использовать текстовое поле для фильтрации данных в DataGrid. Он также использует MVVM и Entity Framework.

Ответ №2:

возможно, вы захотите попробовать это: http://dotnetexplorer.blog.com/2011/04/07/wpf-itemscontrol-generic-staticreal-time-filter-custom-control-presentation/ => он фильтрует любые коллекции, и вам просто нужно декализировать элемент управления в XAML…