Listitem zu Combox hinzufügen

Gegeben sei eine Combobox "ddMitarbeiter", welche wir mit Daten aus einer Datenbank heraus abfüllen. Die Anzeigesparte heisst "Mitarbeiter", die hinterlegte Wertspalte "MitarbeiterID".
Der Code dazu sieht in etwa wie folgt aus:

ddMitarbeiter.DataSource = myDataSet.Tables[

"Mitarbeiter"].DefaultView;
ddMitarbeiter.DisplayMember =
"Mitarbeiter"
;
ddMitarbeiter.ValueMember =
"MitarbeiterID";

Häufig ist es applikatorisch notwendig, dass der Benutzer zum selektieren eines Wertes gezwungen werden muss, was sich am einfachsten durch das hinzufügen einer zusätzlichen Zeile "bitte wählen" an die oberste Stelle bewerkstelligen lässt. In asp.net geht das ganz einfach mit folgender Zeile:

ddMitarbeiter.Items.Insert(0,

"Bitte wählen");

In einem Winform führt dies jedoch zu folgender Fehlermeldung : "Cannot modify the Items
collection when the DataSource property is set." Der Grund dafür ist, das die Daten "live" gebunden sind und die Combobox so quasi fix ans Datatable verdrahtet wird. Die Lösung besteht darin, die zusätzliche Zeile vor dem Databinding dem Datatable hinzuzufügen. Das Resultat sieht so aus:

private

DataRow dr;
dr = myDataSet.Tables[
"Mitarbeiter"].NewRow();
dr[
"Mitarbeiter"] = "bitte wählen"
;
dr[
"MitarbeiterID"
] = 0;
myDataSet.Tables[
"Projekt"].Rows.InsertAt(dr,0);

Print | posted @ Tuesday, May 25, 2004 1:56 PM