Обновлять привязки данных, когда TextBox изменяется, а не теряет фокус - PullRequest
3 голосов
/ 30 мая 2009

Я учусь разрабатывать для компактных фреймворков и столкнулся с проблемой, которая меня беспокоит.

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

Есть ли способ заставить принудительно обновить привязки данных или сделать так, чтобы при каждом изменении символа в одном из текстовых полей обновлялось соответствующее свойство?

Ответы [ 2 ]

6 голосов
/ 31 мая 2009

Если вы сделаете это, вы рискуете поместить неверные данные в ваш объект данных, но вот как это сделать:

В вашем методе MyTextBox.DataBinding.Add() используйте this overload с OnPropertyChanged для параметра DataSourceUpdateMode вместо значения по умолчанию OnValidate

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

5 голосов
/ 31 января 2013

Просто вызовите ValidateChildren () формы в коде кнопки, делающей сохранение

...