2010-01-30 1 views
3

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

ответ

1

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

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

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

+1

Я знаю, что события мне нужно поставить код в !!!!! Я не знаю, как программно переключить привязку и снова включить. – Adam

+1

+1 - это звучит как запутанный пользовательский интерфейс, который лучше всего фиксируется при использовании комбинированного текстового блока и текстового поля. – slugster

2

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

  1. С BindingNavigator, я поставил его обнулить

    bdNavProduct.BindingSource = NULL;

  2. С другой элемент управления текстового поля, DataGridView, я очистить DataBinding

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

Тони