私のWPFMVVMアプリケーションでは、私のモデルはモデルオブジェクトの複雑なツリーであり、実行時に絶えず変化します。モデルインスタンスは実行時に出入りし、ツリー内での位置を変更し、もちろん多くのプロパティを変更します。マイビューは、そのツリーをほぼ1対1で視覚的に表現したものです。すべてのモデルインスタンスは、ケースの80%で、ツリー内のノードでもあります。
私の質問は、これを中心にViewModelをどのように設計するかということです。私の問題は、それぞれが非常に多くのプロパティを持つ非常に多くの異なるモデルタイプがあることです。MVVMを正しく理解している場合、ビューはモデルと直接通信しないはずです。つまり、モデルタイプごとにViewModelタイプを作成し、モデルタイプの各プロパティをViewModelに再ラップする必要があります。
また、ViewModelは、モデルのpropertychangesに「バインド」して、ビューに渡す必要があります(wpf datatbindingを使用)。新しく表示される各モデルのViewModelインスタンスを作成して導入するファクトリが必要であり、対応するモデルが消えたときに各ViewModelインスタンスを破棄する必要があります。作成したすべてのインスタンスを追跡することになります。この二重の折り返しが原因で、どれだけの膨張コードが生成されるかは信じられないほどです。これは本当に良いアプローチですか?各エンティティと各プロパティは2回存在し、モデルとビューの同期を維持するための追加のコードがたくさんあります。これをどのように処理しますか?これを解決するためのより賢い方法はありますか?
誰かが私よりも優れているこのためのリファレンス/サンプル実装を持っていますか?