【问题标题】:WPF How to call some logic in a parent ViewModel from a child ViewModel in MVVMWPF 如何从 MVVM 中的子 ViewModel 调用父 ViewModel 中的一些逻辑
【发布时间】:2011-06-20 23:28:47
【问题描述】:

我正在使用棱镜。 我的父视图中有一个选项卡控件。我的选项卡控件中有两个选项卡。每个选项卡都有不同的视图。每个选项卡都有一个按钮,该按钮可能会或可能不会(取决于某些内部逻辑)导致选项卡控件切换到不同的选项卡。建立这样的架构的最佳做法是什么?

我反对使用 EventAggregator,因为我认为它草率且容易被误用。 还有其他方法可以做到这一点吗?我应该使用 RoutedCommand 还是事件?

我还将在选项卡之间共享信息,但我希望它们松散耦合并具有不同的 ViewModel。有什么想法、建议或批评吗?

谢谢! 布雷特

【问题讨论】:

    标签: c# wpf mvvm prism prism-4


    【解决方案1】:

    不久前,我写了一篇博文,概述了子与父 ViewModel 通信的一些选项。可能会给你一些想法。

    Nested ViewModels

    【讨论】:

      【解决方案2】:

      一般来说,我的第一个偏好是让子视图模型引发事件,并让父视图模型在创建子视图时设置其处理程序。

      但是有很多方法可以做这种事情。例如,如果所有选项卡切换逻辑都存在于父级中,您可以在父级上创建一个命令并使用AncestorType 绑定将按钮绑定到它。这样你就完全不用去接触子视图模型了。

      【讨论】:

        猜你喜欢
        • 2017-11-21
        • 1970-01-01
        • 2014-02-15
        • 1970-01-01
        • 2020-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多