次の部分で構成されるアプリケーションの領域に取り組んでいます。
- Explorer - TreeView を含む
- PropertyInspector - PropertyGrid を含む
- エディター - エクスプローラーと PropertyInspector が含まれています
ご覧のとおり、パーツは階層的に編成されています。私の質問は次のとおりです。エクスプローラーで使用されるツリー ビューで選択されたアイテムを、プロパティ インスペクターで使用されるプロパティ グリッドの選択されたオブジェクトにするにはどうすればよいですか?
ツリー ビューで SelectedItemChanged イベントが発生すると、コマンドが ExplorerViewModel に送信されます。PropertyGrids SelectedObject は、PropertyInspectorViewModel のプロパティにバインドされています。2 つのビュー モデルを接続するにはどうすればよいですか? 1 つの方法として、EditorViewModel が PropertyInspectorViewModel のメソッドを、コマンドを受信したときに ExplorerViewModel によって発生したイベントにアタッチできるようにすることもできますが、これは正しい方法ですか、それともデータ バインディングによって解決できますか?
エディターがツリー ビューとプロパティ グリッドを直接使用しない理由は、エクスプローラーとプロパティ インスペクターが、すべての元に戻す/やり直し機能、検証コードなどと共に、他の領域で再利用されることを意図しているためです。