我的应用包含以下模块:
SystemModel - > SystemViewModel - >的 SystemWindow
SettingsModel - > SettingsViewModel - >的 SettingsWindow
我的 SystemViewModel 包含 SettingsViewModel 等内容。 在我的 SystemViewModel 中,我创建了一些实例,其ctor收到 SettingsViewModel 。
如果我想更新设置,我使用 SettingsViewModel 作为 ShowDialog 打开了新的 SettingsWindow 作为 DataContext 。如果用户单击“确定”,我会更新设置,否则我不会更新。
我的问题是我不知道如何更新我在 SystemViewModel 中创建的实例中的设置(实例在他的ctor中收到 SettingsViewModel 。
有什么想法吗?
答案 0 :(得分:1)
您是否只能创建一个设置视图模型实例,可能驻留在一个公共视图模型中,该模型为视图模型提供一种根,并提供将模型绑定在一起的粘合剂?
有点像视图模型控制器,即使这听起来有点奇怪。此根视图模型可以对视图模型中的事件做出反应,然后可以执行更新其他设置所需的所有操作。
另一种方法是基于消息传递的方法,如MVVM Light Toolit实现的方法。我已经使用过一次,在项目变得相当大之后,这种方法在维护方面有点复杂。
<强>更新强>
您可以找到有关MVVM Light Toolkit here的信息。