Привязать 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 в моделях представления элемента / узла по всему пути от корня дерева модели представления и загрузите содержимое дерева, если узлы в ожидаемом пути не существуют.

Другие вопросы по тегам