我有一个带有嵌套WPF UserControls的UI,每个UI都有自己的视图模型。视图(XAML)层次结构的简单情况是:
MainWindow
|-> Logical group
|-> Logical control
|-> Second logical group
|-> Third logical group
|-> Logical control
每个XAML视图都有一个ViewModel,它封装了交互逻辑。我的问题是将ViewModel状态从父视图模型传递到子视图模型。
例如,MainWindow
中的用户互动可以在CurrentlySelectedGroup
中设置MainWindowViewModel
变量。我需要知道LogicalControlViewModel
内的值是什么。
我正在考虑采用两种主要方式。首先,我可以广播一个事件DispatchGroupSelected
,然后在LogicalControlViewModel
内分配一个委托作为该事件的监听器。其次,我可以Bind
CurrentlySelectedGroup
MainWindowViewModel
LogicalControlViewModel
{{1}}内的{{1}}属性。
我的第一直觉是使用事件在父视图模型和子视图模型之间进行通信。我认为在View Model和View之间最好保持绑定。到目前为止的事件已被用于在我的ViewModel和命令之间进行通信。如果有另一个可能的方向,那就更好了,我有兴趣听听它。
答案 0 :(得分:1)