Вот сценарий. У меня есть текстовое поле в пользовательском интерфейсе, который связан с двойным свойством. Если в текстовом поле вводится символ, скажем, «#», проверки для WPF недостаточно для приложения. Мне нужно отобразить пользовательское сообщение, а также отключить некоторые элементы управления из кода. (Эти элементы управления, которые необходимо отключить, не являются частью xaml.) На данный момент единственным способом, который я мог бы сделать для этого, является привязка текстового поля к строковому свойству и использование метода TryParse. Однако это будет огромным неудобством. Есть ли способ получить уведомление о том, что введен неверный символ без изменения свойства в тип строки?Пользовательская обработка неправильных ввода символов
1
A
ответ
0
Хорошо, я использую «струнное» решение в своей модели просмотра. лучше работает с IDataErrorInfo и привязкой.
, но иногда я также использую InputMaskbehavior для своего текстового поля. поэтому пользователь может просто ввести символы, которые определены для входной маски.
0
Если вы используете шаблон MVVM, то вы, вероятно, должны иметь свойство string в вашей модели ViewModel, поскольку это то, что вводится в текстовое поле. Даже если вам нужен двойной для вашей модели, у вас есть строка на вашем представлении. Затем вы можете выполнить любую проверку, необходимую для свойства string. Что-то вроде:
public string TextProperty
{
get
{
return _textProperty;
}
set
{
if (_textProperty != value)
{
_doubleProperty = this.TransformAndValidateString(value);
_textProperty = value;
}
}
}
Что касается инвалидизирующего управления, когда ошибка присутствует взгляд здесь:
Смежные вопросы
- 1. getline() получение неправильных символов
- 2. Обработка неправильных строк в bigquery
- 3. iPhone клавиатура, пользовательская обработка
- 4. нахождение неправильных символов в javascript
- 5. Node.js пользовательская обработка ошибок
- 6. Пользовательская обработка фокуса ViewGroup
- 7. Пользовательская обработка исключений
- 8. RegEx: Обработка специальных символов
- 9. Обработка ввода в Java
- 10. Веб-хостинг Github, обработка неправильных подстраниц
- 11. ASP.Net MVC - обработка неправильных URL-адресов
- 12. Пользовательская функция ввода линии ввода
- 13. Правильная обработка символов
- 14. Tic Tac Toe массив неправильных символов
- 15. Java - чтение неправильных символов из файла
- 16. Обработка ввода в WinForm
- 17. Пользовательская форма ввода (Sharepoint)
- 18. VBScript Пользовательская переменная ввода
- 19. Пользовательская граница ввода - Java
- 20. RestKit RKObjectManager: getObjectsAtPath - пользовательская обработка
- 21. Пользовательская обработка ошибок Tastypie-django
- 22. Пользовательская обработка ошибок и cancan
- 23. Пользовательская обработка ошибок в js
- 24. Пользовательская обработка ошибок в Go
- 25. Надежная обработка ввода ввода html5
- 26. Обработка ввода строки в C
- 27. HQL: Обработка специальных символов
- 28. Обработка символов VB
- 29. Обработка недопустимой константы символов
- 30. Обработка специальных символов
Неужели нет способа узнать в коде, что неправильное значение было введено? Что-то вроде прослушивания исключения, вызванного IDataErrorInfo? P.S. Извините, если вопросы слишком просты. Я начинающий. – Tulip
IDataErrorInfo не вызывает исключений. Он предоставляет метод, который возвращает строку с сообщением об ошибке, если проверка не выполняется. Почему этот подход не работает для вас? Помните, чтобы поддержать, если ответ вам поможет. –