我有一个WPF应用程序,正在使用MVVM模式。 我有一个组合框,其值用作数据网格的 ItemsSource 的参数。 我为 ComboBox 值创建了一个公共属性,并为 DataGrid 创建了一个公共可观察集合。 当绑定到 ComboBox 的公共属性发生更改时,我使用 EventHandler 来更改 ObservableCollection 和 DataGrid 更新。
我正在重构代码,因为该应用程序的不同部分将使用 ComboBox。 因此,我采用了这个单一视图并创建了 2 个用户控件,一个用于 ComboBox,1 个用于 DataGrid。 然后,我创建了一个继承 INotifyPropertyChange 类的基本 ViewModel,该类由 ComboBox 用户控件使用。 我创建了第二个 ViewModel,它继承了由 DataGrid 控件使用的基本 ViewModel。
这是我的问题,当ComboBox更改时,我不知道EventHandler如何与ObservableCollection通信。 当它们在同一个ViewModel中时,我只是传递了ObservableCollection的名称。
如何更改继承事件处理程序所在的视图模型的视图模型中的 ObservableCollection 属性?
所以你有两个从同一个基本模型派生的视图模型?我只会为两个用户控件使用一个模型视图。我不知道这是否违反 MVVM 模式,但对我来说,这将是最简单的解决方案。