Laden...

ToolStripComboBox und DataBinding

Erstellt von Lord Hessia vor 17 Jahren Letzter Beitrag vor 17 Jahren 4.296 Views
L
Lord Hessia Themenstarter:in
497 Beiträge seit 2006
vor 17 Jahren
ToolStripComboBox und DataBinding

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.

N
4.644 Beiträge seit 2004
vor 17 Jahren

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 = "...";
L
Lord Hessia Themenstarter:in
497 Beiträge seit 2006
vor 17 Jahren

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.

L
Lord Hessia Themenstarter:in
497 Beiträge seit 2006
vor 17 Jahren

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.

L
Lord Hessia Themenstarter:in
497 Beiträge seit 2006
vor 17 Jahren

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.