WPF Listview отфильтрованные элементы - PullRequest
2 голосов
/ 09 июля 2010

У меня есть просмотр списка, который фильтруется по тексту, введенному пользователем.

Есть ли способ получить видимые элементы из списка?

Ответы [ 2 ]

2 голосов
/ 09 июля 2010

Если вы используете virtualization (или представите его позже), любое решение, основанное на свойстве visible элементов списка, может не вернуть все элементы, соответствующие вашему фильтру.

Более надежным решением может быть повторный запуск предиката для базовой коллекции.

1 голос
/ 09 июля 2010

Для достижения того, что вы хотите, я предлагаю следующее решение:

1.

.В модели представления вы создаете список, содержащий все данные, полученные из источника данных.

var myList = new List<string>();

2.

Создайте отфильтрованный список, который получается всякий раз, когда пользователи вводят текст, а выотфильтрует ваши данные на основе введенного текста.

var filteredList = myList.FindAll(myFilter);

, где myFilter - это метод фильтрации данных на основе некоторых критериев.

3.

Свяжите отфильтрованный список с ItemsSource элемента управления представления списка.

Следовательно, вы можете получить доступ к элементам, которые в данный момент отображаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...