WPF での MVVM の実装に関する問題を解決しようとしています。以下のContact
クラスは、Entity Framework によって設定されているモデルです。
public class Contact : INotifyPropertyChanged
{
public string _firstName;
public string FirstName
{
get
{
return _firstName;
}
set
{
_firstName = value;
OnPropertyChanged("FirstName");
}
}
public string _lastName;
public string LastName
{
get
{
return _lastName;
}
set
{
_lastName = value;
OnPropertyChanged("LastName");
}
}
//INotifyPropertyChanged implementation omitted for brevity
}
ここに私のビューモデルがあります:
public class ContactViewModel
{
public Contact MyContact { get; set; }
public string FullName
{
get
{
return MyContact.FirstName + " " + MyContact.LastName;
}
}
}
そこで、View のデータソースを のインスタンスに設定し、 2 つの TextBox をとContactViewModel
にバインドしています。を にバインドしています。TextBoxes のいずれかを変更しても、フルネームは更新されません (明らかに、どこにも行っていません)。MyContact.FirstName
MyContact.LastName
TextBlock
FullName
TextBlock
OnPropertyChanged("FullName")
問題は、どこに追加するOnPropertyChanged("FullName")
かです。モデルは別の場所で使用されており、ViewModel に結び付けたくないので、必ずしもモデルを変更する必要はありません。
アーキテクチャを再考する必要がありますか?