Привязать TreeView.SelectedItem к свойству в ViewModel в приложении WinRT
В своем приложении XAML для Магазина Windows я использую элемент управления TreeView из WinRTXamlToolkit и пытаюсь выполнить двустороннее связывание свойства SelectedItem со свойством ViewModel.
Из коробки свойство SelectedItem доступно только для чтения, и это имеет смысл, поскольку элемент управления поддерживает виртуализацию.
Я видел некоторые народные работы вокруг этого с такими вещами, как прикрепленные свойства, вспомогательные методы и т. Д., Замечательный пример которого можно увидеть в этом вопросе.
WPF MVVM TreeView SelectedItem
Но все вопросы / решения не основаны на WinRT, и все мои попытки переделать код решения для приложения WinRT оказались бесплодными.
Итак, мой вопрос: возможно ли это в приложении WinRT? Что мне не хватает? Спасибо
1 ответ
Я пропустил бы попытку придумать связываемое свойство глобально для модели представления и вместо этого использовал бы IsSelectedBindingPath
а также IsExpandedBindingPath
свойства TreeView
как в примере использования средств отладки элемента управления. Затем, когда вы хотите выбрать / развернуть элемент из модели представления - используйте метод, аналогичный SelectItem()
на мой взгляд, модель, где я по сути установить IsExpanded/IsSelected
true в моделях представления элемента / узла по всему пути от корня дерева модели представления и загрузите содержимое дерева, если узлы в ожидаемом пути не существуют.