我有一个这样的类:
public class PersonViewModel : ViewModelBase //Here is the INotifyPropertyChanged Stuff
{
public PersonViewModel(Person person)
{
PersonEntity = person;
}
public Person PersonEntity {
get { return PersonEntity.Name; }
private set { PersonEntity.Name = value; RaisePropertyChanged("PersonEntity");
}
public string Name {
get { return PersonEntity.Name; }
set { PersonEntity.Name = value; RaisePropertyChanged("Name");
}
public int Age{
get { return PersonEntity.Age; }
set { PersonEntity.Age= value; RaisePropertyChanged("Age");
}
public void ChangePerson(Person newPerson)
{
//Some Validation..
PersonEntity = newPerson;
}
我的TextBox绑定到ViewModel的Name和Age。如果我更改ViewModel中的_person对象,是否必须再次为每个属性调用RaisePropertyChanged,或者是否有方法自动执行此操作(在我的具体示例中,我有大约15个属性..)?
谢谢你的帮助。
干杯约瑟夫
2条答案
按热度按时间3zwtqj6y1#
您可以使用
null
或string.Empty
做为PropertyChangedEventArgs
中的属性名称,以表示所有属性都已变更。PropertyChanged的文件中会提到这一点。8yoxcaq72#
我用来解决这个问题的另一个解决方案是:首先设置值,然后调用
PropertyChangedEventArgs
,方法是在ViewModelBase
中添加一个Set
函数,如下所示:而不是这样做:
现在,您可以通过执行以下操作来实现相同的效果: