モデルとビューモデルの関係を理解しようとしていますが、同じ問題にぶつかり続けています。フィールドが 1 つだけの「Person」クラスがあるとします。
public class Person
{
public string Name;
}
次のフェーズでは、Person を表示するユーザー コントロールを作成した XAML アーティストがいて、MVVM の慣例に従って、ビューを VMPerson (View-Model Person) に関連付ける必要があるため、別のクラスを追加します。
public class VMPerson : INotifyPropertyChange
{
private Person person;
public VMPerson():this(new Person()){}
public VMPerson(Person person)
{
this.person = person;
}
public Name
{ get { return person.name; }
{ set { person.name = value; PropertyChange("Name"); }
}
これで、ほとんどすべてのセットアップが完了しました..しかし、VM クラスはモデル クラスの変更にどのように関連しますか?? INotifyPropertyChanged を追加し、モデルに「Name」のプロパティを追加すると、ViewModel クラスに非常によく似た、必要のない余分なレイヤーが作成されます。Model クラスをそのままにして、view-model クラスの内部の変更について通知を受ける方法はありますか? モデルに実装される INotifyPropertyChanged メカニズムまたは同様のものを使用する以外に方法がない場合、なぜ VM が必要なのですか?? ビューに提供される1つのクラスにいくつかの「モデル」クラスを集約する状況のためだけですか?
私が説明したことによると、ビューコードビハインドをコントローラーとして使用しているときにモデルからビューへのパターンがMVVMよりも優れた抽象化になると思われるため、理解に何かが欠けているに違いないと思いますが、それについては確かにわかりません. 誰かが私に欠けているものを説明できますか? ありがとう。