Ich möchte an eine ToolStripComboBox eine DataTable binden.
Die ToolStripComboBox selber hat ja keine DataSource-Eigenschaft, sie besitzt jedoch eine ComboBox-Eigenschaft, die wiederum DataSource besitzt.
Leider bleibt die ComboBox aber bei folgendem Code leer:
DataTable dt = IngredientDal.getAllIngredientsAsDataTable(IngredientType.Juice);
// dt enthält Einträge: Console.WriteLine(dt.Rows.Count) gibt 90 aus
this.toolStripComboBox.ComboBox.DataSource = dt;
// Ingredientname und ID kommen in der DataTable vor
this.toolStripComboBox.ComboBox.DisplayMember = "Ingredientname";
this.toolStripComboBox.ComboBox.ValueMember = "ID";
Hat jemand von Euch schonmal eine DataTable an eine ToolStripComboBox gebunden und kann mir sagen, wie das geht?
Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.
Das sind ja 2 unterschiedliche ComboBox Bezeichner?
DataBinding funktioniert so wie mit der normalen ComboBox.
toolStripComboBox.ComboBox.DataSource = table;
toolStripComboBox.ComboBox.DisplayMember = "...";
toolStripComboBox.ComboBox.ValueMember = "...";
Da hast Du Recht. Das passiert dann, wenn man versucht, für das Beispiel einfachere Variablennamen zu erzeugen. Habe es geändert.
Aber nun sind unsere Beispiele gleich und wie gesagt, bei mir geht das so nicht (die ComboBox bleibt leer). Bist Du sicher, dass es funktionieren müsste?
Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.
Ich würde gerne nochmal nachhaken. Die beschriebene Vorgehensweise funktioniert bei mir nicht. Trotz der Zeile
toolStripComboBox.ComboBox.DataSource = new string[] {"abc", "def", "ght"};
bleibt die ComboBox im Menu leer. Woran kann das liegen?
Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.
Ok, ich habe mittlerweile den Grund für das falsche Verhalten gefunden.
Es handelt sich bei dem beschriebenen Verhalten offenbar um einen Bug. Sobald eine ComboBox irgendwo anders als in der höchsten Menüebene hinzugefügt wird, so zeigt sie keine Daten an, die per DataSource an das Control gebunden wurden.
Die einzige Möglichkeit, das ganze zu umgehen, ist es, die Daten "per Hand" in die ComboBox einzutragen.
s. auch http://www.vbdotnetforums.com/showthread.php?p=38024
Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.