【Prism系列】Prism事件聚合器

命令和事件        

我们知道MVVM指的就是Model ViewModel 与 View,之前为了做到业务逻辑和前台彻底分离,我们使用了Command命令,将界面的的输入或者是某些控件的事件,转化为命令。这样业务逻辑就从View搬到了ViewModel。很明显这个传递方向是View -》ViewModel。

        但是现在有个一个需求是需要ViewModel通知View某个事情,比如ViewModel告诉View你需要弹出一个窗口!那这个时候,我们通常在View中订阅一个事件,需要通知时在在ViewModel中发布一个事件,这样View就能收到ViewModel的消息了。此时我们的事件聚合器就登场了。

获取事件聚合器对象

我们先看一张图:

 这些是Prism框架帮我们预先在容器里注册的内容,其中第11个就是我们今天的主角儿,事件聚合器,既然是注册好了,我们就可以通过构造函数注入,拿到这个对象。

 //[Unity.Dependency]
 IEventAggregator eventAggregator;

 public PrismEventPageViewModel(IEventAggregator eventAggregator)
 {
     this.eventAggregator = eventAggregator;
 }

这里我试了一下,只能通过构造函数去拿这个对象,无法通过自动注入属性获取。

猜你喜欢

转载自blog.csdn.net/songhuangong123/article/details/126478191
今日推荐