Обновление значения на основе связанных значений во время событий фокуса в winforms - PullRequest
0 голосов
/ 30 марта 2011

У меня есть форма WinForms, связанная с сущностью LLBLGen (хотя я считаю, что эта проблема не является специфической для этого источника привязки, я упоминаю ее на всякий случай).Моя цель кажется довольно простой: обновить другое поле в форме на основе расчета для других полей.

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

Что мне кажется странным, так это то, что я не могу найти место в цепочке фокусировки (см.: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.enter.aspx) где я могу использовать связанную сущность в обновленной форме.Вычисление выполняется нормально, но со значениями перед обновлением.

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

Тем не менее, мне кажется, что я упускаю что-то очевидное:где-то в цепочке событий должно быть обновлено связанное значение, и я смогу выполнить свои вычисления там.

Мой основной вопрос: какое событие я должен использовать, чтобы получить доступ к обновленному связанному элементу вWinForms?

1 Ответ

1 голос
/ 01 апреля 2011

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

Я пока оставлю это без ответа; возможно, у кого-то еще есть ответ на базовый вопрос с точки зрения цепочки фокус-событий. Я не тестировал это решение с другими источниками привязки, но поскольку INotifyPropertyChanged является основой привязки данных, я подозреваю, что метод будет работать с другими источниками данных.

...