有关视图和视图模型的Silverlight MVVM问题

时间:2011-02-11 16:03:54

标签: silverlight mvvm mvvm-light

我觉得mysefl对视图模型更改时如何实现视图切换感到困惑。我要做的事情的例子:
我想要制作的控件类似于向导控件。我有一个添加到wizardsteps集合的视图模型列表,以及一个当前项目viewmodel。如何显示活动视图模型的视图并切换它们然后活动视图模型更改?我如何绑定它们?
在WPF中,我使用DataTemplate,但Silverlight不支持x:Type。

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

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

2 个答案:

答案 0 :(得分:4)

我认为向导是一种情况,你应该有一个ViewModel用于多个视图。

您可以使用属性(IsPage1Visible,IsPage2Visible,...),命令(PreviowsPageCommand,NextPageCommand,CancelComamnd)以及仅一个VM中的所有逻辑来控制每个视图的可见性。

将向导的所有“页面”放在一个UserControl中,并使用布尔属性和BooleanToVisibilityConverter绑定每个页面的内容。

答案 1 :(得分:1)

检查一下,它讨论了SL / WPF中的非线性导航以及如何维护状态。 http://karlshifflett.wordpress.com/2010/07/07/non-linear-navigation-in-silverlight-4/