Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2011, 15:22   #1
Greek9000
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 151
По умолчанию Связка DataGridView и ComboBox

Есть DataGridView с полями tbl1.id_, tbl1.name_, tbl1.id_rel и
ComboBox с привязкой к таблице с полями tbl2.id_ и tbl2.name_.
Обе таблицы находятся в одном наборе данных.
tbl1.id_rel - это внешний ключ для tbl2.id_, следовательно значения tbl1.id_rel могут дублироваться, а значения tbl2.id_ уникальны.

Мне необходимо сделать так, что бы при выделении строки DataGridView, в ComboBox отображалась запись, которая соответствует выделенной записи (т.е. tbl2.id_ == tbl1.id_rel), а при смене элемента в ComboBox значение внешнего ключа в tbl1.id_rel становилось бы равным значению tbl2.id_ выбранного в ComboBox элемента.

Очевидный шаг - сделать это при помощи событий, но это нежелательно. Можно ли добиться поставленной задачи при помощи настройки отношений (через Relations, Bindings или ещё как-нибудь)?
Greek9000 вне форума Ответить с цитированием
Старый 16.05.2011, 20:49   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Binding - да... главное ухитрится понять к чему Вам надо прибиндить ComboBox. Вероятнее всего это будет не простой DataSource.
Spawn™Production® вне форума Ответить с цитированием
Старый 17.05.2011, 06:20   #3
Greek9000
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 151
По умолчанию

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
Binding - да... главное ухитрится понять к чему Вам надо прибиндить ComboBox. Вероятнее всего это будет не простой DataSource.
Всё оказалось на удивление просто. Требовалось заполнить комбобокс данными, забить в ValueMember правильный ид. и прибиндить к SelectedValue значение из главной таблицы.

Но теперь появилась другая проблема: как привязать значение ячейки столбца с типом DataGridViewComboBoxColumn к значению поля той же строки, что и данная ячейка.
Т.е., я создаю столбец с комбобоксами, но они живут сами по себе и никак не зависят от данных в строке.
А проблема вот в чём: при инициализации создаётся DataGridViewComboBoxColumn, а данные надо биндить DataGridViewComboBoxCell.

Можно ли сделать указанную связку в момент создания колонки. Есть ли соответствующие методы у DataGridViewComboBoxColumn ?

Последний раз редактировалось Greek9000; 17.05.2011 в 08:20.
Greek9000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Webbrowser и combobox: сделать чтобы в combobox-е оставалась история посещенных сайтов uasya2 Общие вопросы Delphi 6 06.03.2011 20:24
Связка процессов MCLotos Операционные системы общие вопросы 2 10.04.2010 20:22
ComboBox и DataGridView serenu Помощь студентам 2 10.04.2010 13:49
Связка с ассемблером Horknee Паскаль, Turbo Pascal, PascalABC.NET 6 07.05.2009 23:46
Связка с паскалем Horknee Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 24.04.2009 19:36