2016-06-20 2 views
3

Извините, если это глупый вопрос. Я совершенно новый в этом. Как мне добавить combobox в datatable, а затем загрузить его в datagridview? Это можно сделать? И это лучший способ? Советы и учебники о том, как это сделать, высоко ценятся. Заранее спасибо.C# - Как добавить datagridview combobox в datatable и просмотреть его в datagridview?

   string[] columnNames = dataTable.Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray(); 
       DataTable dt = new DataTable(); 
       dt.Columns.Add("ColA"); 
       dt.Columns.Add("ColB"); 
       dt.Columns.Add("ColC"); 

       for (int i = 0; i < columnNames.Count(); i++) 
       { 
        dt.Rows.Add(); 

        dt.Rows[i][0] = columnNames[i].ToString(); 

        //datatype 
        string sqlAllTables = "SELECT A, B FROM TB_LOOKUP"; 
        DataSet ds; 
        ds = databaseManager.GetData(sqlAllTables); 

        DataGridViewComboBoxCell combo = new DataGridViewComboBoxCell(); 
        combo.DataSource = ds.Tables[0]; 
        combo.DisplayMember = "A"; 
        combo.ValueMember = "B"; 
        dt.Rows[i][1] = combo; 

       } 

       dataGridView1.DataSource = dt; 

ответ

2

Вы не можете добавить элементы управления DataTable.

Если вы хотите, чтобы показать combobox вам нужно будет добавить его в datagridview и связать выпадающий с данными.

var column = new DataGridViewComboBoxColumn(); 
column.DataSource = ds.Tables[0]; 
column.DisplayMember = "A"; 
column.ValueMember = "B"; 
dataGridView1.Columns.Add(column); 

Не добавляйте третий столбец dt.Columns.Add("ColC"); это будет столбец, в котором мы добавили выпадающий выше.

+0

Спасибо. Это решено! – MRu