【发布时间】:2012-05-06 15:07:34
【问题描述】:
案例
假设我有一个Person 类、一个PersonViewModel 和一个PersonView。
将属性从 PersonView 更新到 Person 模型非常简单。 PersonViewModel 包含一个 Person 对象并具有 PersonView 绑定到的公共属性,以便更新 Person 模型。
但是。
想象Person 模型可以由Service 更新。现在需要将属性更改传递给PersonViewModel,然后再传递给PersonView。
这就是我要解决的问题:
对于Person 模型上的每个属性,我都会引发PropertyChanged 事件。 PersonViewModel 订阅 Person 的 PropertyChanged 事件。然后PersonViewModel 将引发另一个 PropertyChanged 以更新 PersonView。
这对我来说似乎是最明显的方式,但我有点想把这个问题抛在那里,希望有人给我一个更好的方式。真的这么简单还是有更好的方法将模型标记为已修改并更新 ViewModel 上的相应属性?
补充
PersonView 的 DataContext 是 PersonViewModel。 Person 由 JSON 填充,并在其生命周期内多次更新。
请随时针对我的特定案例提出架构更改建议。
回答
我将 aqwert 标记为我的问题的答案,因为它为我提供了我已经提出的解决方案的替代方案。
【问题讨论】:
标签: c# silverlight mvvm domain-driven-design prism