Нужен пример для поиска WPF TreeView с виртуализацией и загрузкой по требованию - PullRequest
5 голосов
/ 15 сентября 2010

Мне нужно реализовать функцию поиска в WPF TreeView (в основном мне нужно запомнить последний выбор пользователя). Я пробовал различные предложенные подходы, но ничего не работает, так как virtualization включен в моем TreeView, и дочерние узлы загружаются только при расширении родительского узла (отложенная загрузка).

Кто-нибудь знает пример, в котором эти три вещи (виртуализация, загрузка по запросу и поиск) реализованы вместе?

1 Ответ

3 голосов
/ 23 декабря 2010

Посмотрите на эту ветку форума MSDN, Боб из MS объясняет проблему в реализации этой функции.

причина в VirtualizingStackPanel попробуй сгенерировать элемент для отображения, но у него есть генератор уже в вашем проекте генерировать расширенные элементы (в OnTreeNodeExpanded обработчик событий). Это возникает конфликт с двумя генераторами. VirtualizingStackPanel может генерировать необходимый элемент во время выполнения, он также сгенерировать их в BringIndexIntoView метод. Код метода StartAt это проверить генератор, если это не так null, сгенерировать исключение StartAt когда генерация контента находится в Прогресс ». Итак, образец заполняет все элементы к связанному источнику в InitializeComponent(), и пусть BringIndexIntoView метод генерации контейнер для элемента.

Образец, воспроизводящий проблему, также прилагается к этой теме.

Так что в настоящее время, похоже, нет решения для этого подхода: (

...