我正在构建一个WPF项目并实施了Prism。
我有一个DAL,我有一个库来处理与DataBase的连接,称为持久性,这个库使用EntityFramework
并有一些实体。
此外,我现在有一些DomainModels - 我如何处理给定的场景:
我有2个ViewModel,它们都有ActiveUser
(当前登录的那个)作为IUser
类型DomainModel的引用,我们通过名为IUserService
的服务获得。
让我们假设IUser
有一个名为Funds
的属性,如果ViewModel1
更改IUser
- 我如何通知ViewModel2
它有更改应更新IUser
和Funds
,以便View
显示正确的数据。
我是否在我的模型和我的ViewModel中实施INotifyPropertyChanged
,然后每个ViewModel
应该收听PropertyChanged
事件,并视具体情况而定改变了,相应更新? (虽然我发现这种丑陋)
我是否使用EventAggregator
发布/订阅活动,从我的DomainModels(?)发布并订阅我的ViewModel?
我是否实施类似PropertyObserver<TPropertySource> : IWeakEventListener
类的内容?
由于
答案 0 :(得分:1)
1。和 2。两者都应该完成这项工作,如果有很少的事件,请选择 2。这个,否则 1。,因为它可以保持一切更加局部。
顺便说一句,如果你选择 1。,也可以选择 3。。 PropertyObserver
使处理INotifyPropertyChanged
变得更加简单,因为您不必考虑所涉及对象的生命周期(更不用说更好的语法)。