Вы не устанавливаете текст. Вы устанавливаете базовый идентификатор. Идея состоит в том, что вы привязываете столбец к родительской таблице и привязываете сетку к дочерней таблице, у которой есть внешний ключ к этой родительской таблице. Вы устанавливаете значение внешнего ключа в ячейке сетки, и отображается соответствующее текстовое значение из родительской таблицы.
Например, предположим, что у вас есть таблица Handedness
, например:
Id Name
1 Right
2 Left
3 Ambidextrous
и у вас есть таблица Person
, например:
Id Name HandednessId
1 Peter 2
2 Paul 1
3 Mary 3
В вашей сетке вы должны создать DataGridViewComboBoxColumn
и установить для его свойства DataPropertyName
значение «HandednessId». Когда вы затем привязываете свою таблицу Person
к сетке, столбец HandednessId
будет привязан к столбцу поля со списком. Вы должны привязать свою таблицу Handedness
к столбцу и установить для DisplayMember
и ValueMember
значения «Имя» и «Идентификатор» соответственно. В сетке будут отображаться «Левый», «Правый» и «Амбидекстр» для «Петра», «Пола» и «Мэри» соответственно. Если вы хотите сделать Питера амбидекстром, вы должны установить HandednessId
ячейку Value
на 3, и тогда будет отображаться «Ambidextrous».
См. Это для получения дополнительной информации:
Добавление столбца ComboBox в DataGridView