0

私はMVVMパターンに基づいたWPFアプリケーションに取り組んでいます。

特定のエンティティについて、エンティティプロパティを含むモデル、INotifyPropertyChangedを実装し、いくつかの追加ロジックを備えたViewModelと、モデルのプロパティと、エンティティの作成用と編集用の2つのビューを公開しています。

編集用に単一のViewModelを作成し、ビューを作成して、既存のデータを取得できるように、編集時にエンティティのIDを渡します。

私が理解できないのは、この状況でViewModelを構造化する方法です。

  1. EditEntityViewModelのプロパティとしてEntityViewModelを使用する必要があります。ここで、EntityViewModelはモデルのプロパティを公開し、EditEntityViewModelはコマンドやその他のロジックを処理しますか?これを行うと、ビューの変更がEntityViewModelに通知されないと思います。
  2. お互いについて何も知らない2つの別々のViewModelが必要ですか?
  3. モデルのプロパティを公開し、コマンドやその他のロジックを処理するページに単一のViewModelを用意する必要がありますか?
  4. 他に何かありますか?

ビューごとに1つのViewModelが必要であることはわかっていますが、別のビューを定義する方法が完全にはわかりません。フレームワークをどのように正確に実装するかについて、私は少し混乱していることがわかるでしょう。

助けてくれてありがとう。

4

1 に答える 1

1

複雑にしすぎないでください。ビューモデルとモデルの関係を1:1に保つようにしてください。その結果、ビューモデルは、モデル上のすべてのCRUDメソッドをサポートするメソッドを公開します。また、2つではなく1つのビューを使用することを検討してください。それらの間には多くの重複があるので、それは理にかなっていると思います。作成および保守するクラスが少なくなります。ワンビューアプローチを使用したリストの#3が最良の選択肢だと思います。

于 2013-02-08T18:16:27.447 に答える