在MVVM Light for WPF中连接视图

时间:2010-12-16 15:14:31

标签: c# wpf mvvm mvvm-light

如果我现在有一个MainView,并且在MainView内部我有一个stackpanel。现在我想要的是根据菜单项点击插入不同的视图。如何使用MVVM Light实现这一点?

如果有人可以发布带有代码或视频的项目示例的链接,那就太棒了!

2 个答案:

答案 0 :(得分:3)

我不知道MVVM光,但是如果没有这个Light框架,我会做如下的事情:

<!-- Content area that contains user controls for all wizard steps -->
    <Grid Margin="0,3,0,0">
        <Views:CustomerSelection Visibility="{Binding Path=IsCustomerSelectionVisible, Converter={StaticResource boolToVisibilityConverter}}" />
        <Views:CustomerInformation Visibility="{Binding Path=IsCustomerInformationVisible, Converter={StaticResource boolToVisibilityConverter}}" />
        <Views:CustomerPreferences Visibility="{Binding Path=IsCustomerPreferencesVisible, Converter={StaticResource boolToVisibilityConverter}}" />
        <Views:ProjectSelection Visibility="{Binding Path=IsProjectSelectionVisible, Converter={StaticResource boolToVisibilityConverter}}" />
        <Views:KitchenProjectPreferences Visibility="{Binding Path=IsKitchenProjectPreferencesVisible, Converter={StaticResource boolToVisibilityConverter}}" />
        <Views:OtherProjectProperties Visibility="{Binding Path=IsOtherProjectPropertiesVisible, Converter={StaticResource boolToVisibilityConverter}}" />
    </Grid>    

在底层的viewmodel中,我只是设置了相应的属性,使其中一个用户控件可见。

答案 1 :(得分:0)

更好的方法是在主视图中定义所有视图的数据模板。 然后有一个itemscontrol(将它绑定到mainviewmodel&#39的viewmodels属性集合)

现在基于menuitem单击,清除viewmodels集合并添加所需的视图。