我的工作是由以下几个部分的应用的领域:视图模型到视图模型通信
- 资源管理器 - 包含一个TreeView
- PropertyInspector - 包含PropertyGrid的
- 编辑器 - 包含一个资源管理器和一个PropertyInspector
正如您所看到的,这些零件是以分层方式组织的。我的问题是: 如何使资源管理器使用的树视图中的选定项目属性检查器使用的属性网格的选定对象?
当树视图引发SelectedItemChanged事件时,会将命令发送到ExplorerViewModel。 PropertyGrids SelectedObject绑定到PropertyInspectorViewModel上的一个属性。我如何连接两个视图模型?一种方法是让EditorViewModel将PropertyInspectorViewModel上的方法附加到ExplorerViewModel在接收到命令时引发的事件,但是这种方式还是可以通过数据绑定以某种方式解决?
编辑器不直接使用树视图和属性网格的原因是因为资源管理器和属性检查器连同所有的撤销/重做功能,验证代码等都是要在其他区域重用的原因。
搜索RelayCommand实现, 比您在执行命令的发布商一个虚拟机,并在订阅者执行它。 我稍后会发布一个真正的实现。仅供参考,您的粗犷逻辑毫无兴趣尝试从技术角度解决问题 – 2013-04-08 19:43:49