In datengebundenes GridView Combobox einfügen
-
Hallo,
bevor ich anfange möchte ich wissen, ob sich das überhaupt umsetzen lässt:Ich habe ein DataGridView welches ich über eine DataTable fülle.
Darin möchte ich eine Spalte als ComboBox. Diese soll vorselektiert den Wert des Datensatzes aus der DataTable haben
Die Combobox soll dann noch mit anderen möglichen Werte aus einer DB Abfrage befüllt sein.Ich hoffe, es ist soweit verständlich was ich machen möchte?
-
Einfach die DataSource (und evtl. DisplayMember und ValueMember) der ComboBox setzen, s. z.B.
http://stackoverflow.com/questions/19941569/populate-datagridview-combobox
http://bytes.com/topic/c-sharp/answers/884685-how-fill-combobox-column-datagridview-programatically
-
Ok, aber wie kann ich nun den Wert in der Combobox vorselektieren?
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { MBE mbeItem = comboBox1.SelectedItem as MBE; if (mbeItem != null) { dataGridView1.DataSource = null; dataGridView1.Rows.Clear(); dataGridView1.Columns.Clear(); dataGridView1.DataSource = GetMBEData(mbeItem.Id); DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn(); col.DataSource = GetIdentNumbers(); col.Width = 120; col.Name = "ComboColumn"; dataGridView1.Columns.Insert(1, col); } Set_Values_On_ComboBoxes(); } private void Set_Values_On_ComboBoxes() { for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) { dataGridView1.Rows[i].Cells["ComboColumn"].Value = dataGridView1[2, i].Value; } }
Jedoch erhalte ich dann die Fehlermeldung Der DataGridViewComboBoxCell-Wert ist ungültig.
-
Hat sich erledigt!
Durch das setzen folgender Eigenschaften:col.DataPropertyName = "Ident"; col.DisplayMember = "Ident"; col.ValueMember = "Ident";