Джош Смит написал четкий, краткий обзор работы с элементом управления TreeView в WPF. Секрет успеха - это привязка свойств IsExpanded и IsSelected модели представления к элементам дерева. Бумага здесь .
Однако после дня попытки сопоставить его подход с Silverlight Toolkit TreeView я начинаю подозревать, что это невозможно.
Сначала я сталкивался с проблемами связывания с IsExpanded, пока не наткнулся на предложение об использовании сеттера на присоединенном DependencyProperty
. Это выглядело многообещающе, но все еще не работало.
Кажется, есть некоторые принципиальные различия между элементом управления TreeView с WPF и набором инструментов Silverlight; различия, которые сводят на нет возможность управления представлением от модели представления, как это делает Джош в своем замечательном примере. Поиск данных модели представления и каскадное обновление IsExpanded = true вверх по иерархии отлично работает для Джоша в WPF, но не так много для меня в Silverlight.
Фактически возможно: 1) найти узел в иерархии объектов viewmodel, а затем установить True все свойства IsExpanded от этого узла к корню, и это отразится на связанном представлении?
(мы используем MVVM-light, если это поможет)