Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Проблема с combobox


Автор: maxnoskov 8.9.2006, 15:21
Есть две таблицы, связанные между собой по ключевому полю. И есть таблица справочник, в которой указан код документа и его название.
На форме есть combobox с такими св-ми:
Код

   combobox.DataSource = DataSet; 
   combobox.DisplayMember = "namedocum.formdocum"; //поле, кот. отображается 
   combobox.ValueMember = "iddocum"; // значение которое присваивается 
   combobox.DataBindings.Add("SelectedValue", DataSet, "document.iddocument"); //связываю подчиненное поле чтоб ему присваивались значения из выбранного  ValueMember

Но проблема в том, что при запуске формы в combobox отображается не то значение, на которое мы забинделись, а то, которое стоит первым в таблице namedocum, т.е. из которой мы берем значения
Помогите пожалуйста

Автор: mr.DUDA 8.9.2006, 22:13
Непонятна структура датасета. А навскидку могу предположить, что поле "document.iddocument" не будучи связанным ни с одним контролом на форме, не действует на CurrencyManager, управляющий "текущим" элементом в BindingContext.

Автор: maxnoskov 11.9.2006, 08:24
Цитата(mr.DUDA @ 8.9.2006,  22:13)
Непонятна структура датасета. А навскидку могу предположить, что поле "document.iddocument" не будучи связанным ни с одним контролом на форме, не действует на CurrencyManager, управляющий "текущим" элементом в BindingContext.

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

Автор: maxnoskov 11.9.2006, 10:37
Более того, при первом запуске формы указатель позиционируется на эту запись, но в combobox стоит первое по списку значение из  DisplayMember. Я позиционирую указатель на первой строке в таблице students - опять ничего. Но когда я перехожу на другую запись и потом обратно позиционирую указатель на первой, то все нормально - значение выводится правильно и в дальнейшем все корректно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)