一種のスキーマを構成するモデル オブジェクトのツリーを持つアプリケーションがあります。これは次のようになります。
ElementSet
....ElementGroup
........ScalarElement
........BoolElement
....ElementGroup
........MatrixElement
........VectorElement
このツリーははるかに複雑ですが、アイデアは理解できます。このツリーを WPF TreeView に表示し、ユーザーが特定のノードを選択するだけでなく (マスター/詳細スタイル)、ノードを追加、削除、および再配置できるようにします。
私の意図は、ツリー内の各ノードを ViewModel にカプセル化することです。そこに、コマンド、ツールチップ情報、その他の ViewModel 関連の毛羽立ちを追加します。
私の問題は、モデルのツリーがあり、それに合わせてViewModelのツリーが本当に必要になるということです。これに対するエレガントな解決策を考えるのに苦労しています。これを構築するにはどうすればよいですか?それらを同期させますか?等
私がいじっているアイデアの 1 つは、View をモデル オブジェクトのグラフに直接バインドすることですが、ValueConverter を使用してモデルを各ノードの ViewModel に変換することです。各モデルには一意の ID があるため、コンバーターが ViewModel のクエリ可能なキャッシュを維持してビューに返すことは問題外ではありません。
モデルのコレクション/ツリーのビュー モデルを作成するために、他にどのような効果的な戦略が存在しますか?