我有两个视图模型ViewModelA
和ViewModelB
他们都使用公共DataServiceA
来检索名为Theme
的用户设置。 ViewModel
B可以更改该设置并将其保存到数据库中。发生这种情况时,ViewModelA
不会更新该主题值
我一直试图弄清楚正确的行动方案,以便让它更新它并提出一些选择:
有什么想法吗?
答案 0 :(得分:1)
使用事件听起来很合适,如果他们都可以访问DataServiceA,那么在主题发生变化时你是否可以提出事件?
因此..在DataServiceA中,当修改主题时会引发“OnThemeChanged”事件,并且ViewModel可以订阅事件并在引发事件时更新它们的内容。
答案 1 :(得分:0)
如果他们都使用相同的DataServiceA
实例,我认为DataServiceA
也将实施 INotifyPropertyChanged 并不是一个坏主意Theme
属性更改时引发事件。
但如果您不喜欢这个想法,另一个选择是使用 EventAggregator 并发布该事件。我个人认为第一种选择已经足够了,但这是你的呼唤......