Hallo Zusammen,
ich habe folgendes Problem.
Ich habe ein Form mit mehreren Comboboxen. Beim Laden der Form wird eine Liste über DataSource in jede der Comboboxen geladen. Der anwender sollte jetzt in jeder Combobox etwas auswählen können. Doch wird in einer Combobox etwas ausgewählt, wird automatisch ohne das ich das will, dieser Wert in allen anderen Boxen ebenfals ausgewählt.
Ich hoffe mir kann jemand helfen, denn ich habe keine Ahnung warum das so ist.
Hallo Kalle_84,
hat den jede Combobox eine eigene DataSource oder teilen sich mehrere Comboboxen eine DataSource?
Viele Grüße,
telfa
Hallo,
also ich habe ein List<string> LISTE
und dann wird dieser den comboboxen zugewiesen:
combobox1.DataSource = LISTE;
combobox2.DataSource = LISTE;
:
:
Wenn das das Problem sein sollte, wie mach ich das dann richtig.
Vielen Dank!
Ein object also z.B. eine Liste werden grundsätzlich als Referenz behandelt und nicht als Kopie, sogesehen gibst du der ComboBox ein Link zur Quellen, löscht du nun bei einer ComboBox etwas wird dies an die Quelle weitergeleitet in dem Fall die List<string>. Da beide aber als Quelle deine List haben wird das Element auch aus der zweiten ComboBox gelöscht.
Entweder du füllst die ComboBoxen selbst indem du die List mit einer Schleife durchläufst und anschließend
ComboBox.Items.Add(WERT)
nutzt oder du erstellst zweite List<string>
Real programmers don't comment their code - it was hard to write, it should be hard to understand.
Hallo Crone,
dass überall Referenzen auf ein und dieselbe Liste verwendet werden, ist richtig. Aber der Vorschlag, die Liste zu kopieren, ist unangebracht. Genauso wie die Alternative, die ComboBoxen mit Add zu füllen. Hier muss und sollte man einfach nur für jede ComboBox einen eigenen BindingContext setzen, um sie zu entkoppeln:
cbx1.BindingContext = new BindingContext ();
cbx2.BindingContext = new BindingContext ();
...
herbivore
Cool wieder was dazu gelernt 😃
Real programmers don't comment their code - it was hard to write, it should be hard to understand.