Как развернуть TreeViewItems изнутри, как на примере WPF Джоша Смита - PullRequest
0 голосов
/ 08 сентября 2010

Джош Смит написал четкий, краткий обзор работы с элементом управления TreeView в WPF. Секрет успеха - это привязка свойств IsExpanded и IsSelected модели представления к элементам дерева. Бумага здесь .

Однако после дня попытки сопоставить его подход с Silverlight Toolkit TreeView я начинаю подозревать, что это невозможно.

Сначала я сталкивался с проблемами связывания с IsExpanded, пока не наткнулся на предложение об использовании сеттера на присоединенном DependencyProperty. Это выглядело многообещающе, но все еще не работало.

Кажется, есть некоторые принципиальные различия между элементом управления TreeView с WPF и набором инструментов Silverlight; различия, которые сводят на нет возможность управления представлением от модели представления, как это делает Джош в своем замечательном примере. Поиск данных модели представления и каскадное обновление IsExpanded = true вверх по иерархии отлично работает для Джоша в WPF, но не так много для меня в Silverlight.

Фактически возможно: 1) найти узел в иерархии объектов viewmodel, а затем установить True все свойства IsExpanded от этого узла к корню, и это отразится на связанном представлении?

(мы используем MVVM-light, если это поможет)

1 Ответ

0 голосов
/ 08 сентября 2010

Похоже, нет другого способа, кроме как создать подкласс TreeView / TreeViewItem, как описано в этой серии статей Беа Штольниц здесь , здесь и здесь .

...