Почему не работает обновление выпадающего списка?

У меня сложная проблема, не могли бы вы мне помочь.

Проблема:

У меня есть форма с TabControl. Есть два TabPages, в первом есть dataGridView, а во втором несколько comboboxes.

DataGridView заполняется данными из Table1, на другой вкладке первому источнику данных combobox присваивается значение TableCB1, второму comboboxTableCB2 и т. д.

Между TableCB1, TableCB2 ... находятся DataRelations подобные (TableCB1.ID->TableCB2.ParentID). Я использую привязки данных для привязки текущих столбцов из таблицы к элементам управления.

Когда я открываю форму, первая вкладка (dataGridView) заполняется и работает нормально, но если я выбираю вторую вкладку (с comboboxes), то combobox выбранных элементов выбраны неправильно!!! Только первая combobox установлен правильно, но все остальные выбрали первый элемент в источнике данных, пока я не изменю позицию источника привязки или не сделаю dataset.rejectchanges().

Но если сделать так, чтобы TabPage two отображался при загрузке формы, то элементы списка выбираются правильно!

Я знаю, что это очень специфическая проблема, но надеюсь, что кто-нибудь поможет мне решить эту проблему.

Я делаю это на .NET3.5 и winforms.

Спасибо.


person Jooj    schedule 06.03.2010    source источник


Ответы (1)


Ответ в этой теме может быть тем, что вам нужно:

DataBinding не выполняется для элементов управления до тех пор, пока элементы управления не будут созданы. TabPage создает дочерние элементы управления только после того, как TabPage станет видимым. Чтобы выполнить DataBinding, вам нужно принудительно создать дочерние элементы управления на TabPage, и один из способов сделать это — показать/скрыть TabPage (как вы обнаружили).

person Jacob Seleznev    schedule 08.03.2010