次のコードは私の問題を示しています。
public class Person : (INotifyPropertyChanged) // INPC only for PersonViewModelB
{
public string Name {get; set;}
}
public class PersonViewModelA : INotifyPropertyChanged
{
private Person _person {get; set;}
public string Name
{
get { return _person.Name; }
set { _person.Name = value; }
}
//XAML: {Binding Name}
}
public class PersonViewModelB : INotifyPropertyChanged
{
private Person Person {get; set;}
//XAML: {Binding Person.Name}
}
多くの例で、PersonViewModelAのようなものを見てきました。メリットがわかりません。私にとって、PersonViewModelBははるかにクリーンで、はるかにドライです。
どちらの場合も、ViewModel(IsSelectedなど)または計算フィールド(Name = FirstName + "" + LastNameなど)にビュー固有のフィールドを追加できます。リヒトドメインモデルを使用している場合、それをビューに公開できないのはなぜですか?
Asp.net MVCでは、モデルに直接バインドすることを学びました。それは問題ありませんが、WPFではそうではありませんか?なんで?
追加のオーバーヘッドを正当化するものは何ですか?