Ich habe eine DataGridView
Kontrolle in meiner Windows Forms-Anwendung, mit der Benutzer die Produktliste bearbeiten können. Um die Produktkategorie zu bearbeiten, möchte ich, dass der Benutzer neue Einträge hinzufügt oder aus den bereits eingegebenen auswählt. Um dies zu erreichen, fügte ich eine comboBox
Spalte hinzu, die an eine DataSource
gebunden ist, die die eindeutigen Kategorienamen aus der Produkttabelle erhält. Mit Hilfe von einigen anderen SO Fragen konnte ich machen dieses comboBox
editierbar mit diesem Code:DataGridView-ComboBox-Spalte akzeptiert keine neuen Werte
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == CategorySelector.Index)
{
ComboBox combo = e.Control as ComboBox;
if (combo == null)
return;
combo.DropDownStyle = ComboBoxStyle.DropDown;
}
}
Aber das Problem ist, dass wenn ich versuche, die Kategorie comboBox
Spalte zu bearbeiten und neue Kategorie andere als die aufgeführten hinzufügen, und Wenn ich zu einer anderen Zelle umschalte, wird zu einem alten Kategorieelement für ein existierendes Produkt oder ein leeres für ein neues Produkt zurückgeschaltet. Bitte sagen Sie mir, wie kann ich neue Kategorie über diese comboBox
Spalte hinzufügen?
Veröffentlichen Sie die Codes, die Sie versuchten, eine Kategorie hinzuzufügen. –
@RezaAghaei Ich verwende automatisch generierte 'DataGridView' Methoden zum Hinzufügen. –
Die 'DataGridViewComboBoxColumn' zeigt nur die Elemente ihrer' DataSource'. Wenn Sie also einen neuen Eintrag in der Liste erwarten, sollten Sie der Datenquelle einen neuen Eintrag hinzufügen. –