WPF — временно остановить привязку данных (привязка данных)

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


person Adam    schedule 30.01.2010    source источник


Ответы (2)


У меня была такая же проблема, и я решил ее

  1. С помощью BindingNavigator я установил для него значение null

    bdNavProduct.BindingSource = ноль;

  2. С другим элементом управления текстовым полем, datagridview, я очищаю DataBinding

         txtProductID.DataBindings.Clear();
         txtProductName.DataBindings.Clear();
         txtQuantity.DataBindings.Clear();
         txtUnitPrice.DataBindings.Clear();
         dgvProduct.DataBindings.Clear();
    

Тони

person Tony    schedule 01.01.2013

Вы можете прикрепиться к событию ввода текста и отменить привязку, а затем повторно применить ее к событию потери фокуса.

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

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

person Lozzey    schedule 30.01.2010
comment
Я знаю, в какие события мне нужно вставить код!!!!! Я не знаю, как программно отключить и снова включить привязку. - person Adam; 30.01.2010
comment
+1 - это звучит как запутанный пользовательский интерфейс, который лучше всего исправить, используя комбинированный подход к текстовому блоку и текстовому полю. - person slugster; 30.01.2010