Является ли OnValidate слишком поздним для внесения изменений?

#.net #linq-to-sql

#.net #linq-to-sql

Вопрос:

Каждый OnValidate пример, который я, кажется, вижу, по существу доступен только для чтения (проверка значений и выдача исключений). Я хотел бы сделать еще один шаг и изменить значения (где возможно однозначное исправление) как часть процесса проверки. Является OnValidate ли обратный вызов слишком поздним в конвейере для внесения изменений (без нарушения других предположений)? или иным образом не рекомендуется?

Для (надуманного) примера предположим, что я должен был обрезать пробелы или объединить нулевые строки в пустые строки OnValidate .

Ответ №1:

Думаю, это зависит от того, как вы хотите, чтобы это работало для пользователя.

Возможно, вы могли бы сделать это при изменении значения (textchanged и т. Д.) Или Когда элемент теряет фокус.

Я думаю, OnValidate предназначен для отображения общего резюме.

Лично я бы предпочел, чтобы «отображалась моя ошибка, но я вношу изменения, чтобы исправить ее».. например, предиктивный текст на мобильных телефонах, который автоматически корректируется, часто ошибочен, но, может быть, я просто набираю смешно.