我在 WPF 中使用 MVVM 模型时遇到了问题。这是我的对象:
意见
MainWindow(View)(此视图的 DataContext 绑定到 MainWindowViewModel)
ItemViewWindow(DataContext 绑定了一个 ItemListViewModel)
视图模型
MainWindowViewModel(包含:ObservableCollection 项)
ItemListViewModel(包含:ObservableCollection Items、ItemViewModel SelectedItem、其他属性/命令)
通过 MainWindow 上的菜单按钮访问 ItemViewWindow。我希望能够只将 MainWindow 中的集合传递给 ItemView(注意:我不能将它设置为 DataContext,因为它需要一个 ItemListViewModel)。然后在那里所做的任何更改都应反映在 MainWindow 中。
我知道一种方法是将 ItemListViewModel 作为 MainWindowViewModel 的属性而不是 Collection,然后我可以将其作为 DataContext 传递,但在 MainWindowViewModel 中拥有 ItemListViewModel 的额外功能似乎是错误的。有没有更优雅的方法可以在不使用 UI 代码隐藏的情况下做到这一点?