質問: モデルからモデルビューへの変更を得るには? 私は現在、MVVMにアプリケーションを書き直すことに忙しいです(多くの作業のために、段階的に)。 現在、モデルビューの変更に応じてリストビューとコントロールを塗りつぶすことができます。また、リストビューの選択も正しく結合されています(少なくとも私はそれを正しく行う方法を知っています)。 しかし、私はモデルビューに反映されるモデルの変更について疑問を抱いていました。モデルのすべてのアイテムにINotifyPropertyChangeインターフェイスを追加し、modelviewに登録する必要があります(モデル階層の 'トップ'にないアイテムを購読したい場合はチェーンのようなものでしょうか)。 例えば。私はリストBを含むリストAを持っています。リストBのプロパティー変更のためにリストAで購読する必要がありますか?リストAにサブスクライブするモデルビューでは?別のリスト選択が行われた場合には、購読を停止して購読を停止することができます。 読んでいただきありがとうございます。
回答: はい、通常、モデルに `INotifyPropertyChanged` を実装し、ビューモデルに登録します。ビジネスエンティティに CSLA のようなフレームワークを使用している場合、Rockyは貧血対豊かなモデルについて説明します。ビューモデルのビューに直接モデルをプロパティとして公開します。 私は `INotifyPropertyChanged` は安定した依存関係だと思うので、モデルをかなり汚染することはありません。ビューに直接モデルを公開することは好きではない人もいますが、多くのコードやリピートコードを保存することができます。そうしないと、ビューモデルは値を追加せずにモデルの多くのプロパティを複製することになります。