【问题标题】:Should I use the EventAggregator or implement INotifyPropertyChanged on my Domain Models when notifying ViewModels of changes in the model?在通知 ViewModel 模型更改时,我应该使用 EventAggregator 还是在我的域模型上实现 INotifyPropertyChanged?
【发布时间】:2016-11-03 16:00:08
【问题描述】:

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

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

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

  1. 我是否在我的模型和视图模型中实现INotifyPropertyChanged,然后每个ViewModel 都应该监听PropertyChanged 事件,并根据已更改的属性进行相应更新? (不过我觉得这种丑)

  2. 我是否使用 EventAggregator 并发布/订阅事件,从我的 DomainModels(?) 发布和订阅我的 ViewModels?

  3. 我是否实现了类似PropertyObserver<TPropertySource> : IWeakEventListener 类的东西?

谢谢

【问题讨论】:

  • Iuser 实例是单例吗?
  • @SatyajitMohanty 不,不是

标签: wpf prism inotifypropertychanged eventaggregator


【解决方案1】:

1.2. 应该都能胜任,如果这样的事件很少,我会选择 2.,否则 1. 因为它将所有内容都保持在更局部的范围内。

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

【讨论】:

    猜你喜欢
    • 2015-01-20
    • 2011-11-17
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 2016-11-24
    • 2013-01-19
    相关资源
    最近更新 更多