Я бы пошел другим путем:
Сначала определите, когда вы предполагаете, что пользователь прекратил печатать.LostFocus является очень хорошим показателем, потому что пользователь явно покинул текстовое поле.Тайм-аут гораздо менее надежен, потому что пользователь может медленно печатать или отвлекаться.Если программа затем изменит текст, это может ввести пользователя в заблуждение.
Вы даже можете создать элемент управления текстовым полем с двумя значениями: одно поле ввода, в которое пользователи вводят, другое поле (только для чтения), отображающее текущее значение в базе данных.Этот элемент управления может иметь кнопку, позволяющую пользователю принять значение из базы данных.
Все это похоже на попытку уклониться от неприятной стороны классической проблемы оптимистичного параллелизма: что, если значение в базе данных изменяется во времяedit?
Решение, которое вы создаете здесь, имеет много накладных расходов, которые могут не стоить этого (взгляните на сетевой трафик ...) Просто позвольте пользователю ввести значение.Передайте его обратно в базу данных, поймайте конфликты и позвольте пользователю справиться с конфликтом.Это будет гораздо лучше масштабироваться и намного проще в реализации.