wpf - MVVM : Bind property in ViewModel to property in a different VM?

标签 wpf mvvm-light

在 WPF 应用程序中使用 MVVMLight 工具包。
我有一个封装应用程序设置的 ViewModel 类,以及一个允许用户更改它们的相应 View 。设置存储在注册表中。

我在主视图中添加了一些状态指示器,以反射(reflect)某些设置是打开还是关闭。将它们的可见性绑定(bind)到 MainViewModel 中的属性是有意义的。
是否可以将 MainViewModel 中的属性绑定(bind)到 SettingsViewModel 中的属性,或者我应该使用消息告诉 MainViewModel SettingsViewModel 中的某些内容已更改?
感谢您的任何建议...

最佳答案

一种简单的方法是将 SettingsViewModel 作为 MainViewModel 的属性公开,如下所示:

Public SettingsViewModel Settings
{
    get
    {
       return settingsViewModel;
    }
}

然后在您的 MainView.xaml 中,您的绑定(bind)可以执行此操作:

"{Binding Path=Settings.ASettingOnTheSettingsVM}"

关于wpf - MVVM : Bind property in ViewModel to property in a different VM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19496520/

相关文章:

c# - MVVM Light Dispatcher 帮助程序设计时错误

c# - MVVM Light for WPF 中的连线 View

c# - 如何将多个视觉元素作为一项任务批量打印?

c# - WPF/MVVM 菜单项的替代背景颜色

c# - WPF:仅当其后台任务花费的时间超过指定间隔时,才显示进度对话框

c# - 从 ViewModel 中的不同线程更新 View Model 中的 UI 绑定(bind)集合时出错

mvvm - 如何使用 MVVM 清除 WPF 4.0 中的 DatePicker 值

c# - 在 WPF 中播放流式视频

c# - WPF中奇怪的缩放问题

c# - 跨所有 View 模型处理 token 过期事件的策略