C#/WPF: PropertyChanged pour toutes les Propriétés dans le ViewModel?
J'ai une classe comme ceci:
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;
}
Mes zones de texte sont liés à l'Âge, et le Nom du ViewModel.
Si je change le _person objet dans le ViewModel, dois-je appeler pour chaque Propriété d'un RaisePropertyChanged de nouveau ou est-il un moyen de le faire automatiquement (dans mon exemple concret, j'ai environ 15 Propriétés..)?
Merci pour toute aide.
Cheers
Joseph
Vous devez vous connecter pour publier un commentaire.
Vous pouvez indiquer toutes les propriétés ont été modifiées en utilisant
null
oustring.Empty
pour le nom de la propriété dansPropertyChangedEventArgs
. Ceci est mentionné dans la documentation de PropertyChanged.Une autre solution que j'ai utilisée pour résoudre le problème: tout d'abord la définition de la valeur et puis l'appel de la
PropertyChangedEventArgs
est par l'ajout d'unSet
fonction dans maViewModelBase
qui ressemble à ceci:Au lieu de faire ceci:
Vous pouvez maintenant obtenir la même chose en faisant cela: