开发者

How do I reflect changes made to ViewModels for other windows?

My app contains the following moduls:

SystemModel --> SystemViewModel --> SystemWindow

SettingsModel --> SettingsViewModel --> SettingsWindow

My Sy开发者_开发知识库stemViewModel contain SettingsViewModel and other things. In my SystemViewModel I create some Instance that its ctor receives SettingsViewModel.

If i want to update the settings I opened new SettingsWindow as ShowDialog with SettingsViewModel as him DataContext. If the user click "ok" I update the settings else I don't update.

My problem is that I dont know how to update the Settings in the Instance that I created in the SystemViewModel (Instance that received SettingsViewModel in his ctor).

Any idea?


Can you create only one instance of settings view model, maybe residing in a common view model that serves kind of a root for the view model and providing the glue that binds the models together?

Something like a view model controller, even if this sound a bit strange. This root view model could react to events from the view models and then can do everything that is required to update the other settings.

Another approach is a messaging based approach like the one that is implemented by MVVM Light Toolit. I have used this once and after the project got rather big this approach was kind of complicated regarding maintenance.

Update:

You can find information about MVVM Light Toolkit here.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜