PropertyDescriptor.AddValueChanged sur un string n'est pas exécuté si la valeur est vide
Bonjour.
J'utilise actuellement des PropertyDescriptor afin de m'abonner sur tous les champ d'une instance de User. Quand une valeur est modifier, cela exécute un simple méthode faisant passer ma variable CanSave à True.
Code:
1 2 3 4
| foreach (PropertyDescriptor propertyDescriptor in TypeDescriptor.GetProperties(this.user))
{
propertyDescriptor.AddValueChanged(this.user, this.EditPerson);
} |
Code:
1 2 3 4
| private void EditPerson()
{
this.CanSave = !string.IsNullOrWhiteSpace(this.user.FirstName) && !string.IsNullOrWhiteSpace(this.user.LastName)
} |
Prenons donc les champs FirstName et LastName. Si l'un deux revient à une valeur null empty ou simplement avec uniquement des espaces, la méthodes n'est pas exécutée.