Я реализовал тип CustomDoubleConverter
, который реализует IValueConverter
.Я включил его Converter={StaticResource customDoubleConverter}
и соответствующий ресурс в xaml
-файл.Работает нормально.
Вопрос об обработке ошибок.Я хотел бы проверить, если строка пользовательского интерфейса представляет правильный double
.если нет, то показать одно из двух сообщений на метке в зависимости от недопустимого ввода: пустая строка или другая не двойная строка.
Какой подход следует использовать для отображения пользовательских сообщений об ошибках в форме пользовательского интерфейса, когда ошибка происходит во времяпреобразование типа из строки?
Я пытался сделать с помощью исключений, но получил необработанное исключение. Совет: не создавайте исключение в IValueConverter убедил меня больше не пытаться использовать исключения.
Мне удалось проверить дважды после конвертации с корректной обработкой интерфейса IDataErrorInfo
в представлении модели MVVM.Но это можно сделать после успешного преобразования строки в двойное, что не соответствует описанному выше случаю.
У меня также есть ValidatesOnDataErrors="True"
и ValidatesOnExceptions="True"
для моего текстового поля.
Я использую подход MVVM для проектирования, если это полезно (аналогично описанному в WPF Apps WithШаблон проектирования Model-View-ViewModel ).
Короче:
Я хочу разобрать double с TextBox
и показать одно из трех сообщений об ошибкахесли есть на метке пользовательского интерфейса:
- пустая строка (упомянутая выше),
- недопустимая двойная строка (упомянутая выше) и
- отрицательное число (не упомянутая выше, но я обработал это через
IDataErrorInfo
- это не проблема).