Wpf MVVM:将ViewModel中的属性绑定到其他VM中的属性?

Wpf MVVM:将ViewModel中的属性绑定到其他VM中的属性?,wpf,mvvm-light,Wpf,Mvvm Light,在WPF应用程序中使用MVVMLight工具包。 我有一个封装应用程序设置的ViewModel类,以及一个允许用户更改设置的相应视图。这些设置存储在注册表中 我在主视图中添加了一些状态指示器,以反映某些设置是打开还是关闭的。将这些属性的可见性绑定到MainViewModel中是有意义的。 是否可以将MainViewModel中的属性绑定到SettingsViewModel中的属性,或者是否应该使用消息通知MainViewModel SettingsViewModel中发生了更改? 谢谢你的建议

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

我在主视图中添加了一些状态指示器,以反映某些设置是打开还是关闭的。将这些属性的可见性绑定到MainViewModel中是有意义的。
是否可以将MainViewModel中的属性绑定到SettingsViewModel中的属性,或者是否应该使用消息通知MainViewModel SettingsViewModel中发生了更改?

谢谢你的建议

如果您的
设置查看模型
是从
MainViewModel
启动的,并且您已经实现了
INotifyPropertyChanged
界面,那么您可以只听
设置查看模型。PropertyChanged
事件:

MainViewModel
中:

SettingsViewModel settingsViewModel = new SettingsViewModel();
settingsViewModel.PropertyChanged = SettingsViewModel_PropertyChanged;

...

private void SettingsViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    // Monitor property changes here
}

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

Public SettingsViewModel Settings
{
    get
    {
       return settingsViewModel;
    }
}
然后,在MainView.xaml中,绑定可以执行以下操作:

"{Binding Path=Settings.ASettingOnTheSettingsVM}"

谢谢,这就是我所做的。由于SettingsView绑定到SettingsView模型,因此我必须为SettingsView添加一些要绑定到的xxxTemp属性。当用户在SettingsView上单击“保存”时,持久化属性(MainView控件绑定到的属性)会得到更新。这是一个有用的解决方案,但这不会破坏MVVM模式吗?只是一个想法。。。