WPF, WVVM, привязка данных и словари ресурсов - PullRequest
1 голос
/ 02 июля 2010

У меня есть 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 для достижения этой цели?

1 Ответ

0 голосов
/ 02 июля 2010

AFAIK нет контроля, который может сделать это.Однако мне кажется, что это было бы невероятно легко (невежество - это счастье, вы знаете).Все, что вам нужно сделать, это создать пользовательский DataTemplateSelector , который будет кэшировать шаблоны для ваших ContentControls.

...