我有一个基于 MVVM 的 WPF 桌面应用程序。
我正在利用 MVVMLight 和 Prism 创建包含视图和子视图的用户控件。
我在子视图上有按钮。
(假设这是一个关闭按钮)
将单击事件的通知从嵌套子视图传播到其包含的父视图的最佳方法是什么?
子视图可以使用EventAggregator
在棱镜或Messenger
MvvmLight 中的类发送父视图(或视图模型)订阅的消息。有关该概念的更多信息,请参阅以下链接。
https://msdn.microsoft.com/en-us/magazine/jj694937.aspx
http://dotnetpattern.com/mvvm-light-messenger
https://blog.magnusmontin.net/2014/02/28/using-the-event-aggregator-pattern-to-communicate- Between-view-models/
另一种方法是从父视图模型中保留对子视图模型的强引用,并在父视图模型中引发子视图模型订阅的事件。
使用事件聚合器或消息传递器的好处是,您可以避免在事件发布者和订阅者之间引入紧密耦合,这将使应用程序更易于维护。
事件或消息的发布者和订阅者都只知道事件聚合器或信使,但他们对彼此一无所知。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)