c# - 从主 Viewmodel 调用 subview 模型方法

标签 c# wpf mvvm

我在很多帖子中看到 View 模型之间的通信应该使用信使总线来完成。

我想知道的是,简单地从主虚拟机执行子虚拟机方法是否被认为是不好的?

假设有一个带有 TabControl 的 View ,其中每个 TabItem 都是一个 subview 模型。

当我关闭应用程序时,我需要调用 SaveSettings() 子虚拟机方法来存储我的设置。

我需要知道这是否是错误的代码,以及原因。

main view
-> closingEvent
  -> call MainVM SaveAllSettings()
     -> for (ChildVM childVM in allTabs)
       --> childVM.SaveSettings() (public method)

最佳答案

如果您的对象已经相互耦合,即如果父 View 模型已经对 subview 模型具有强引用,则无需使用信使或事件聚合器在它们之间进行通信。然后您可以(或者更确切地说应该)直接调用子级的任何方法。

确实存在这种父/子关系的情况,这并不一定是坏事或设计不佳的迹象。这完全取决于对象之间的关系。

关于c# - 从主 Viewmodel 调用 subview 模型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41226230/

相关文章:

c# - 处理 asp.net mvc 3 Controller 中的重复代码

c# - MVVM 应用程序中用户配置数据的实用管理

c# - Catel MVVM结构

wpf - WPF KeyBinding Key 可以有几个替代值吗?

wpf - 模型更改时刷新 ViewModel 的所有属性的数据绑定(bind)的好方法

c# - 旋转元素的缩放

wpf - 如何在另一个 xaml 的控件上应用双动画?

c# - Unity Input.getAxis 可以使用哪些参数?

c# - C# 的部分类是糟糕的设计吗?

c# - C#中字段的隐式类型