在不同的视图模型中通知属性已更改

时间:2014-04-03 01:21:38

标签: wpf inheritance mvvm event-handling viewmodel

我有一个WPF应用程序并使用MVVM模式。我有一个ComboBox,其值用作DataGrid的ItemsSource的参数。我为ComboBox值创建了一个公共属性,为DataGrid创建了公共ObservableCollection。当绑定到ComboBox的公共属性发生更改时,我使用EventHandler来更改ObservableCollection和DataGrid更新。

我正在重构代码,因为ComboBox将由应用程序的不同部分使用。所以,我采用这个单一视图并创建了2个UserControls,1个用于ComboBox,1个用于DataGrid。然后我创建了一个基础ViewModel,它继承了ComboBox用户控件使用的INotifyPropertyChange类。我创建了第二个继承ViewModel的ViewModel,它由DataGrid控件使用。

这是我的问题,当ComboBox发生变化时,我不知道EventHandler如何与ObservableCollection通信。当它们在同一个ViewModel中时,我只是传递了ObservableCollection的名称。

如何更改继承EventHandler所在的ViewModel的ViewModel中的ObservableCollection属性?

1 个答案:

答案 0 :(得分:0)

所以你有两个来自相同基本模型的ViewModel? 我只是将一个ModelView用于两个Usercontrols。 我不知道这是否反对MVVM模式,但对我来说这将是最简单的解决方案。