我在很多帖子中看到 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/