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