То же, что и вы, только с выпадающим списком datagridview. Задайте для свойства DataPropertyName имя столбца основной таблицы, если вы планируете использовать комбинацию для обновления этой основной таблицы, отображаемой в сетке
.
Представьте себе ситуацию с таблицей данных Person со столбцом GenderId, который является целым числом. Также таблица Gender с N парами id:name, такими как 1: мужчина, 2: женщина и т. д.
personDt = new DataTable
personAdapter.Fill(personDt)
genderDt = new DataTable
genderAdapter.Fill(genderDt)
Тогда установка будет такой:
DataGridView
- Источник данных = personDt
DataGridViewComboBox
- Источник данных = полеDt
- DisplayMember = "имя" 'например. "мужской", "женский"
- ValueMember = "id" 'например. 1, 2
- DataPropertyName = "GenderId" 'имя столбца в personDt, который должен ссылаться на
ComboBox становится двусторонним: когда он находит 1
в поле человека, он ищет его и показывает "мужской". Когда пользователь изменяет элемент на «женский», он получает ассоциированное значение 2 в столбце гендерного Dt.Id и сохраняет его в personDt.GenderId
.
Взгляните на эту статью MSDN: Класс DataGridViewComboBoxColumn
Я рекомендую вам прочитать это. Это практическое руководство по этому вопросу, которое я написал несколько лет назад.