Добавление комбинированного списка в DataGridView через Datatable - PullRequest
3 голосов
/ 16 февраля 2010

У меня есть DataGridView, и я заполняю его через DataTable. При инициализации я добавляю DataColumns к DataTable, а затем устанавливаю DataSource DataGridView в DataTable. Вот код:

DataTable mTable    = new DataTable("Test");

DataColumn  col = new DataColumn;
col.DataType      = System.Type.GetType("System.Boolean");
col.ColumnName  = "First";
col.ReadOnly    = false;
mTable.Columns.Add(col);

col            = new DataColumn;
col.DataType    = System.Type.GetType("System.String");
col.ColumnName  = "Second";
col.ReadOnly    = false;
mTable.Columns.Add(col);

this.myGridView.DataSource = mTable;

Тем не менее, это прекрасно работает, я хочу, чтобы один из столбцов отображался как комбинированный список. Я думаю, что должен что-то сделать с типом данных столбца, но я не уверен, как это сделать. Кто-нибудь может дать мне указание на это?

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Это старо, но я решил, что все равно попытаюсь на него ответить, так как у меня был тот же самый вопрос некоторое время назад.

Прежде всего, вы не можете создать столбец DataTable типа DataGridViewComboBoxColumn. DataColumn наследуется от System.Data, а DataGridView * Columns наследуется от System.Windows.Forms.

То, что вы можете попробовать, заключается в следующем: как только ваш DataTable будет привязан к вашему DataGridView, столбцы из DataTable должны появиться в DataGridView в конструкторе. Если вы затем развернете свойство Columns вашего DataGridView, вы увидите, что ваши столбцы из DataTable были добавлены в список. Выберите нужный столбец, и в правой панели появится свойство ColumnType. Тип по умолчанию - DataGridViewTextBoxColumn, но вы можете изменить его на DataGridViewComboBoxColumn.

0 голосов
/ 16 февраля 2010

изменить объявление на это: DataGridViewComboBoxColumn column1 = new DataGridViewComboBoxColumn()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...