Недавно я начал исследовать шаблон MVVM с WPF для будущего проекта. Я начал с статьи Джоша Смита в MSDN. У меня есть вопрос (ну, многие , но начнем с одного):
У меня есть IndividualViewModel, который раскрывает свойства модели. Мне нужны два представления «Добавить человека» и «Редактировать человека», которые, как вы можете себе представить, очень похожи. В настоящее время я создал 2 подкласса AddIndividualViewModel и EditIndividualViewModel, которые предоставляют команды «Добавить» и «Редактировать» соответственно. У меня также есть 2 одинаковых именованных представления, которые привязываются к ним.
Теперь этот метод работает, и эти классы в любом случае довольно малы, но мне интересно, могу ли я иметь только одну модель представления, которая предоставляет обе команды. У меня по-прежнему будет 2 представления, которые будут привязаны к этой же модели представления, отображая соответствующую команду в виде кнопки. Я не совсем понимаю, как это сделать. В ресурсах главного окна у меня есть что-то вроде:
<DataTemplate DataType="{x:Type ViewModels:AddIndividualViewModel}">
<Views:AddIndividualView />
</DataTemplate>
С помощью этого метода привязки вы можете иметь привязку только один к одному, то есть одно и то же представление всегда отображается для данной модели представления. Есть ли способ автоматически переключать представление в зависимости от свойства в модели представления (например, IndividualViewModel.Mode). Есть ли другой подход, который мне следует рассмотреть?
Обратите внимание, что в главном окне есть набор моделей представлений, каждая из которых отображается на вкладке.
Спасибо!