Обработчик PropertyDescriptor.AddValueChanged не будет выполняться с пустой строкой или строкой пробелов
Я использую propertyDescriptor, чтобы прикрепить обработчик для каждого свойства экземпляра. Когда одно из этих свойств изменяется, вызывается метод-обработчик, за исключением одного случая (вот проблема): когда значение является строкой, а эта строка пуста или содержит только пробелы.
Я должен выполнить этот случай, чтобы обновить свойство IsEnabled моей кнопки Сохранить.
foreach (PropertyDescriptor propertyDescriptor in TypeDescriptor.GetProperties(this.MyInstance))
{
propertyDescriptor.RemoveValueChanged(this.MyInstance, this.MyMethod);
}
Например, когда я редактирую имя пользователя и удаляю его имя, моя кнопка сохранения должна быть отключена.
1 ответ
Я нашел новое поведение.
Все свойства используются с привязками в приложении WPF. MyMethod вызывается, только если для свойства UpdateSourceTrigger установлено значение LostFocus. Со значением PropertyChanged это не так. Для некоторых свойств я должен использовать значение PropertyChanged: для динамического ValidationRules в качестве примера.