Я разрабатываю довольно простое приложение WPF для отображения иерархии объектов и сведений о выбранном объекте, с UserControl
переносом TreeView
на левой панели (древовидный элемент управления) и другим UserControl
переносомListView
/ GridView
справа (элемент управления подробностями).
Элемент управления деревом использует MVVM, следуя этой статье Джоша Смита , достаточно разумно и имеет несколько типов ViewModel, всеполученный из того же базового типа, TreeViewModel
.Главное окно настроено с использованием MainWindowViewModel
, как в этой статье Джоша Смита , и раскрывает TreeViewModel
, используемый для заполнения первого поколения элемента управления деревом.
Однако, когда яЯ хочу заполнить область сведений справа, у меня проблема в том, что SelectedItem
элемента управления дерева происходит от TreeViewModel
, когда мне нужен совершенно другой тип ViewModel для панели сведений, который расширит объект в таблицусвойств / значений с использованием отражения.
Итак, вопросы:
Уместно ли для MainWindowViewModel
выставить TreeViewModel
для древовидного элемента управления?Я считаю, что ответ здесь - да, но я открыт для предложений об обратном.
Как следует адаптировать выбранный элемент в древовидном элементе управления к нужному типу ViewModel для области сведений?Один из вариантов, по-видимому, заключается в том, что MainWindowViewModel
отслеживает выбранный элемент в дереве и выполняет адаптацию, выставляя его как другое свойство, но я не уверен, что есть лучшее решение.
Я новичок в WPF и шаблоне MVVM, поэтому прошу прощения за довольно простую природу вопроса.Я довольно много читал по фону шаблона, просмотрел некоторые примеры приложений и т. Д., Но не могу найти ничего достаточно конкретного, чтобы убедить меня в ответе.Я также понимаю, что MVVM может быть излишним для такого простого приложения, но я использую его частично как учебное упражнение.