如何反映对其他窗口的ViewModel所做的更改?

时间:2011-09-25 20:51:40

标签: wpf mvvm

我的应用包含以下模块:

SystemModel - > SystemViewModel - >的 SystemWindow

SettingsModel - > SettingsViewModel - >的 SettingsWindow

我的 SystemViewModel 包含 SettingsViewModel 等内容。 在我的 SystemViewModel 中,我创建了一些实例,其ctor收到 SettingsViewModel

如果我想更新设置,我使用 SettingsViewModel 作为 ShowDialog 打开了新的 SettingsWindow 作为 DataContext 。如果用户单击“确定”,我会更新设置,否则我不会更新。

我的问题是我不知道如何更新我在 SystemViewModel 中创建的实例中的设置实例在他的ctor中收到 SettingsViewModel

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您是否只能创建一个设置视图模型实例,可能驻留在一个公共视图模型中,该模型为视图模型提供一种根,并提供将模型绑定在一起的粘合剂?

有点像视图模型控制器,即使这听起来有点奇怪。此根视图模型可以对视图模型中的事件做出反应,然后可以执行更新其他设置所需的所有操作。

另一种方法是基于消息传递的方法,如MVVM Light Toolit实现的方法。我已经使用过一次,在项目变得相当大之后,这种方法在维护方面有点复杂。

<强>更新

您可以找到有关MVVM Light Toolkit here的信息。