2009-07-22 3 views
0

Я привязываю значение текстового значения текстового поля к моей переменной в файле конфигурации. Я рассматриваю только ввод из этого текстового поля, чтобы он был действительным, если он является целым числом, большим, чем 1. Сейчас я делаю это, позволяя пользователю писать все, что ему нужно, и я бы разрешил ему сохранять настройки после вызова функция проверки. Проблема заключается в том, что моя переменная привязки в классе «Настройки», кажется, обновляется, как только редактируется текстовое поле, и это поведение, которое я бы хотел пропустить. Как я могу это сделать?(.net) Основной вопрос конфигурации Настройки

ответ

0

Не привязывайте значение к текстовому полю. Сначала сделайте так, как говорит Мэтью, и «используйте событие OnValidating в текстовом поле, чтобы выполнить ваш код проверки», а затем используйте событие OnValidated для обновления значения конфигурации.

0

Вы можете использовать OnValidating событие на текстовое поле, чтобы сделать ваш код проверки, и установите e.Cancel истинное значение, если проверка не проходит (и сообщить пользователю как-то, возможно, MessageBox).

+0

Не похоже, чтобы в событии проверки было что-то похожее на привязки. Это похоже на то, когда ваш контроль теряет фокус. Проблема все равно будет такой же, как когда вы привяжете свой элемент управления, он просто обновит переменную привязки, как только вы напечатаете все, что хотите в элементе управления. Я не хочу заставлять моего пользователя писать все сразу в первый раз, я просто хочу, чтобы переменные привязки были правильными, когда пользователь нажимает кнопку «Сохранить» (а затем запускает код проверки). –

+1

Тогда, хотя drs9222 получил downvoted, это все, что вы можете сделать. Связывание не должно обновляться до подтверждения проверки. –

+0

Нет ли способа, позволяющего остановить привязку, а другой - для обновления привязок? –

0

Возможно, вы можете использовать MasktedTextBox (с маской или без нее), а затем подписаться на событие Validating (или TypeValidationCompleted), чтобы добавить свою собственную проверку. Я считаю, что связанное значение сохраняется только после успешного завершения проверки.