MVVM Light for WPF 中的连线视图

发布于 2024-10-08 03:13:21 字数 132 浏览 0 评论 0原文

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

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

If I have a MainView for now, and inside MainView i have a stackpanel. And now what I want is to plug different views based on Menu item click. How to implement this using MVVM Light?

Would be great if somebody can post a link to a project sample with code or video!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏日落 2024-10-15 03:13:21

我不知道 MVVM light,但我在没有这个 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>    

在底层视图模型中,我只是设置适当的属性以使用户控件之一可见。

I don't know about MVVM light, but I do something like that without this Light framework as follows:

<!-- 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>    

And in the underlying viewmodel I just set the appropriate properties for making one of the usercontrols visible.

影子是时光的心 2024-10-15 03:13:21

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

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

Better way to do this is, define all view's datatemplates in mainview.
and then have a itemscontrol(bind it to mainviewmodel's collection of viewmodels property)

Now based on menuitem click, clear that viewmodels collection and add the required view.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文