Привязка данных в выпадающем списке - PullRequest
0 голосов
/ 11 октября 2011

Ссылка: C # привязка данных в выпадающем списке

У меня похожая ситуация. У меня есть форма с несколькими текстовыми полями, поля со списком, флажки. Первоначально я использую, чтобы перехватить «измененное» событие (например, text_changed, selected_index_changed и т. Д.) И синхронизировать данные пользовательского интерфейса с объектом поддержки. Я узнал о привязке данных и привязал все элементы пользовательского интерфейса к своему объекту поддержки.

Проблема: Основываясь на состоянии моего пользовательского интерфейса, я включал и отключал кнопку «Отправить», которая использует объект поддержки для сохранения содержимого. Но теперь, благодаря DataBinding, свойство объекта поддержки не изменяется, если только связанный с ним элемент управления не теряет фокус.

Вопрос Есть ли стандартный способ решения этой проблемы? Или мне все еще нужно перехватить «измененное» событие и установить значение объекта поддержки?

Также, чтобы сделать форму отказоустойчивой, я использую для сохранения объекта поддержки каждые N секунд. Но с DataBinding (учитывая, что элемент управления, который находится в фокусе, еще не установил свое значение для объекта поддержки), я буду сохранять неверные данные.

Что я пробовал Evey N секунд вызывает this.validate () -> это не работает, поскольку фактически заполняет старые данные в элементе управления в фокусе.

----- ПРИМЕЧАНИЕ ------

Объект поддержки реализует интерфейс INotifyPropertyChanged.

и вот как я связываюсь (не в дизайнере), а в коде.

Binding Binding = новая Binding («проверено», решение, «InternalFlag»); checkBoxFlag.DataBindings.Add (связывание); * 1 027 *

1 Ответ

0 голосов
/ 11 октября 2011

Вам необходимо изменить свойство привязки, которое описывает, когда обновлять внутренний объект с потерянного фокуса на измененное значение

Режим обновления источника данных

binding = new Binding("checked", solution, "InternalFlag", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...