Silverlight MVVM вопрос относительно представлений и моделей представления - PullRequest
1 голос
/ 11 февраля 2011

Я чувствую растерянность в том, как реализовать переключение видов при изменении модели видов.
Пример того, что я собираюсь сделать:
Элемент управления, который я хочу создать, похож на элемент управления мастера. У меня есть список моделей представлений, добавленных в коллекцию шагов мастера, и модель представления текущего элемента. Как отобразить вид модели активного вида и переключить их, после чего модель активного вида изменится? Как мне их связать?
В WPF я бы использовал DataTemplate, но Silverlight не поддерживает x: Type.

<DataTemplate DataType="{x:Type ViewModel1}">
  <view:View1 />
</DataTemplate>

<DataTemplate DataType="{x:Type ViewModel2}">
  <view:View2 />
</DataTemplate>

Ответы [ 2 ]

4 голосов
/ 11 февраля 2011

Я думаю, что мастер - это тот случай, когда у вас должна быть одна ViewModel для нескольких видов.

Вы можете управлять видимостью каждого представления с помощью свойств (IsPage1Visible, IsPage2Visible, ...), команд (PreviowsPageCommand, NextPageCommand, CancelComamnd) и всей логики только в одной виртуальной машине.

Поместите все «страницы» мастера в один элемент UserControl и свяжите их вид с логическими свойствами и BooleanToVisibilityConverter.

1 голос
/ 02 марта 2011

Проверьте это, он говорит о нелинейной навигации в SL / WPF и о том, как поддерживать состояние.http://karlshifflett.wordpress.com/2010/07/07/non-linear-navigation-in-silverlight-4/

...