У меня есть View (MainView), который содержит своего рода область основного контента (MainContent). Представление поддерживается соответствующей ViewModel (MainViewModel). Разумеется, основное содержимое изменяется в зависимости от текущего состояния приложения и представляется в ViewModel в виде свойства (CurrentPrimaryViewModel). Содержимое MainContent привязано к CurrentPrimaryViewModel в XAML следующим образом:
Content="{Binding Path=CurrentPrimaryViewModel}"
Существует ResourceDictionary, содержащий набор ViewModel-> View mapping DataTemplates. Поэтому, если CurrentPrimaryViewModel имеет тип XViewModel, он разрешается в XView.
Это все работает, вроде.
Проблема в том, что каждый раз, когда CurrentPrimaryViewModel изменяет новый вид, создается. Я хотел бы, чтобы соответствующим образом отображенное представление просто изменило свой DataContext на правильный ViewModel, а затем превратило это представление в MainContent. В основном, как CardStack? макет из Java или TabControl без видимых вкладок.
Какая техника подходит для решения этой ситуации? Нужно ли просто создавать различные виды в оболочке MainContent и переключать их видимость или Z-порядок? Есть ли хороший шаблон для этого? Что должно быть связано между MainView и MainViewModel для достижения этой цели?