我正在尝试解决在 WPF 中实现 MVVM 时遇到的问题。我Contact
下面的课程是由实体框架填充的模型。
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 的数据源设置为 的实例ContactViewModel
,并将两个 TextBox 绑定到MyContact.FirstName
和MyContact.LastName
。我将 a 绑定TextBlock
到FullName
. 当我更改任何一个文本框时,全名TextBlock
都不会更新(显然,我没有在任何地方做OnPropertyChanged("FullName")
任何事情)。
问题是,我在哪里添加OnPropertyChanged("FullName")
?我不一定要修改我的模型,因为它正在其他地方使用,我不想将它绑定到我的 ViewModel。
我需要重新考虑我的架构吗?