Почему IDataErrorInfo не перехватывает сообщения по умолчанию - PullRequest
0 голосов
/ 14 декабря 2018

Почему моя модель с интерфейсом IDataErrorInfo проверяет текст, а не ошибки проверки по умолчанию в Windows int?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вы можете установить для свойства int только действительное значение int и ничего больше.Это не обязанность модели представления подтверждать, что представление устанавливает свойство равным int.Тип является частью API модели представления и контракта между моделью представления и любым потребляющим классом, включая представление.

Этот вид проверки выполняется самой платформой WPF.Если вы хотите настроить его, вы можете использовать правило проверки в представлении или элементе управления.Вот пример, доступный здесь .

Но вы не можете ничего сделать в модели представления (кроме как изменить тип свойства на string, но обычно это плохая идея).

0 голосов
/ 14 декабря 2018

Проверка интерфейса IDataErrorInfo требует, чтобы входное значение, которое будет обновлено в источнике данных, было правильно преобразовано в тип источника. Поэтому пустое строковое поле не может быть правильно преобразовано в значение int, поэтому исходные данные сохранятИсходное значение и IDataErrorInfo не могут уведомить об ошибке.Вам понадобятся некоторые пользовательские правила проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...