【发布时间】:2012-11-27 13:56:35
【问题描述】:
我有两个视图模型ViewModelA 和ViewModelB,它们都使用公共DataServiceA 来检索名为Theme 的用户设置。 ViewModelB 可以更改该设置并将其保存到数据库中。发生这种情况时,ViewModelA 不会更新该主题值。
我一直在尝试找出正确的行动方案以允许它也对其进行更新,并提出了一些选择:
- 让 DataService 在保存值时引发属性通知(我不喜欢这样)
- 使用 MessengerService 使它们保持同步。 (我遇到了消息循环问题)
- 将一个 ViewModel 传递给另一个
有什么想法吗?
【问题讨论】:
-
你考虑过使用事件吗?如果 ViewModelB 将数据保存到主题,它可以引发事件。 ViewModelA 可以订阅事件并调用数据服务来刷新其主题版本。反之亦然。
标签: c# mvvm viewmodel mvvm-light