2016-06-20 7 views
3

Sorry, wenn das eine dumme Frage ist. Ich bin ziemlich neu darin. Wie sollte ich die Combobox zu Datatable hinzufügen und dann in die Datagridview laden? Kann das gemacht werden? Und ist das der beste Weg? Tipps und Anleitungen, wie dies zu tun ist, werden sehr geschätzt. Vielen Dank im Voraus.C# - Wie sollte ich Datagridview Combobox Datatable hinzufügen und eine Vorschau in 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; 

Antwort

2

Sie können keine Steuerelemente DataTable hinzufügen.

Wenn Sie ein combobox zeigen wollen, müssen Sie es in datagridview aufzuwerten und die Combobox mit Daten binden.

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

Fügen Sie keine dritte Spalte dt.Columns.Add("ColC"); dies wird die Spalte, in der wir die Combobox oben hinzugefügt.

+0

Danke. Es ist gelöst! – MRu