WPF - временно остановить привязку данных (привязка данных) - PullRequest
3 голосов
/ 30 января 2010

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

Ответы [ 2 ]

2 голосов
/ 01 января 2013

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

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

    bdNavProduct.BindingSource = null;

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

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

Tony

1 голос
/ 30 января 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...