我正在研究由以下部分组成的应用程序区域:
- Explorer - 包含一个 TreeView
- PropertyInspector - 包含一个 PropertyGrid
- Editor - 包含一个 Explorer 和一个 PropertyInspector
如您所见,这些部分以分层方式组织。我的问题是:如何使资源管理器使用的树视图中的选定项目成为属性检查器使用的属性网格的选定对象?
当树视图引发 SelectedItemChanged 事件时,会向 ExplorerViewModel 发送一条命令。PropertyGrids SelectedObject 绑定到 PropertyInspectorViewModel 上的属性。如何连接两个视图模型?一种方法可能是让 EditorViewModel 将 PropertyInspectorViewModel 上的方法附加到 ExplorerViewModel 在收到命令时引发的事件,但这是要走的路还是可以通过数据绑定以某种方式解决?
编辑器不直接使用树视图和属性网格的原因是因为资源管理器和属性检查器,连同所有撤消/重做功能、验证代码等,旨在在其他领域重用。