У меня есть TextBox, который должен содержать только допустимое целое число. Он проверен с использованием пользовательского ValidationRule. Проблема, с которой я сталкиваюсь, заключается в том, что когда TextBox.Text является недопустимым, скажем «3a», и я набираю другое «a», тогда присоединенное свойство TextBox Validation.HasError меняется с TRUE -> FALSE -> TRUE. Мое программное обеспечение реагирует всякий раз, когда Validation.HasError имеет значение FALSE, но TextBox.Text в этот момент времени имеет значение «3a», что нежелательно.
Вот как я вижу вещи:
TextBox.Text = "3a" и Validation.HasError = TRUE. Теперь я набираю дополнительный «а», и происходит следующее. Сначала процесс Validation удаляет существующее ValidationError и вызывает событие Validation.Error с ValidationErrorEventArgs.Action = ”Removed”. Теперь Validation.HasError = FALSE. Сразу после этого процесс проверки добавляет новый ValidationError и вызывает событие Validation.Error с ValidationErrorEventArgs.Action = ”Added”. Теперь Validation.HasError = TRUE снова.
Все, что я могу сделать, это реагировать на события Validation.Error и затем проверять вложенное свойство Validation.HasError исходного объекта, чтобы увидеть, является ли оно истинным или ложным. К сожалению, Validation.HasError возвращает false, когда TextBox.Text = ”3a”, что явно не является допустимым целым числом.
Любые идеи были бы очень полезны. Спасибо:)