У меня есть текстовое поле, которое привязано (в одну сторону) к таблице данных, которая обновляется пару раз в секунду. Таким образом, значение текстового поля постоянно отражает изменения в таблице данных. Когда я вхожу в текстовое поле, чтобы вручную установить значение, привязка приводит к тому, что значение постоянно перезаписывается. Как мне остановить это? Когда я ввел значение (текстовое поле потеряло фокус), я хочу, чтобы текстовое поле возвращалось для отображения связанного значения, а не значения, которое я только что ввел вручную.
WPF — временно остановить привязку данных (привязка данных)
Ответы (2)
У меня была такая же проблема, и я решил ее
С помощью BindingNavigator я установил для него значение null
bdNavProduct.BindingSource = ноль;
С другим элементом управления текстовым полем, datagridview, я очищаю DataBinding
txtProductID.DataBindings.Clear(); txtProductName.DataBindings.Clear(); txtQuantity.DataBindings.Clear(); txtUnitPrice.DataBindings.Clear(); dgvProduct.DataBindings.Clear();
Тони
Вы можете прикрепиться к событию ввода текста и отменить привязку, а затем повторно применить ее к событию потери фокуса.
Однако я думаю, что вам нужно подумать, почему вы вообще отображаете связанное значение в текстовом поле? Не было бы более подходящим иметь нередактируемый текстовый блок, отображающий информацию о вашей базе данных, с редактируемым текстовым полем, отдельным для дополнительного пользовательского ввода.
Хотя то, что вы просите, выполнимо с помощью упомянутого мной события Textbox, похоже, что это может сбить с толку с точки зрения пользователя.