Laden...

Wie kann ich eine Listbox mit einer Bindingsource füllen?

Erstellt von max85 vor 5 Jahren Letzter Beitrag vor 5 Jahren 2.134 Views
M
max85 Themenstarter:in
35 Beiträge seit 2018
vor 5 Jahren
Wie kann ich eine Listbox mit einer Bindingsource füllen?

Morgen,
ich möchte mein listbox einmal mit bindingsource füllen ;

     
 var list = JsonConvert.DeserializeObject<Dictionary<string, Example>>(jsonData)
                         ?? new Dictionary<string, Example>();
           // listBox2.DataSource = list.Keys;
            listBox2.DataSource = new BindingSource(list, null);
            listBox2.DisplayMember = "Key";
            listBox2.ValueMember = "Value";

und später einzelne items hinzufügen;

listBox2.Items.Add("Linechart " + index.ToString());//exception

aber ich bekomme fehler > Fehlermeldung:

"Die Items-Sammlung kann nicht geändert werden, wenn die DataSource-Eigenschaft festgelegt ist"

Wie könnte ich das lösen?
Danke im Voraus

Hinweis von Coffeebean vor 5 Jahren

Bitte benutze die Code-Tags. [Hinweis] Wie poste ich richtig?

3.511 Beiträge seit 2005
vor 5 Jahren

Moin,

du musst die Einträge dem Dictionary hinzufügen, da du diese ja auch per BindingSource bindest. Die ListBox bindet sich ja an das Dictionary. Wenn du jetzt Elemente direkt zur ListBox hinzufügst, weiß die ListBox ja nicht mehr was sie zu tun hat, da sie ja den Eintrag nicht selber in das Dictionary schreiben kann. Hoffe das war verständlich 😃

Gruß
Khalid

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

F
10.010 Beiträge seit 2004
vor 5 Jahren

Und dran denken, DisplayMember und ValueMember vor der Datasource setzen, sonst wird 3 mal gebunden.

M
max85 Themenstarter:in
35 Beiträge seit 2018
vor 5 Jahren

Ok, vielen Dank!