在通知ViewModel模型中的更改时,我应该在我的域模型上使用EventAggregator还是实现INotifyPropertyChanged?

时间:2016-11-03 16:00:08

标签: wpf prism inotifypropertychanged eventaggregator

我正在构建一个WPF项目并实施了Prism。 我有一个DAL,我有一个库来处理与DataBase的连接,称为持久性,这个库使用EntityFramework并有一些实体。 此外,我现在有一些DomainModels - 我如何处理给定的场景:

我有2个ViewModel,它们都有ActiveUser(当前登录的那个)作为IUser类型DomainModel的引用,我们通过名为IUserService的服务获得。

让我们假设IUser有一个名为Funds的属性,如果ViewModel1更改IUser - 我如何通知ViewModel2它有更改应更新IUserFunds,以便View显示正确的数据。

  1. 我是否在我的模型和我的ViewModel中实施INotifyPropertyChanged,然后每个ViewModel应该收听PropertyChanged事件,并视具体情况而定改变了,相应更新? (虽然我发现这种丑陋)

  2. 我是否使用EventAggregator发布/订阅活动,从我的DomainModels(?)发布并订阅我的ViewModel?

  3. 我是否实施类似PropertyObserver<TPropertySource> : IWeakEventListener类的内容?

  4. 由于

1 个答案:

答案 0 :(得分:1)

1。 2。两者都应该完成这项工作,如果有很少的事件,请选择 2。这个,否则 1。,因为它可以保持一切更加局部。

顺便说一句,如果你选择 1。,也可以选择 3。PropertyObserver使处理INotifyPropertyChanged变得更加简单,因为您不必考虑所涉及对象的生命周期(更不用说更好的语法)。