2016-11-07 4 views
0

Ich arbeite gerade an einem Zeichengenerator für ein Rollenspiel. Ich habe eine Methode, die Fähigkeitsbewertungen würfelt, und ich habe sie in einem Array. Ich konvertiere das Array in eine Liste. Dann zeige ich alle Kombinationsfelder auf die Datenquelle. Ich binde sie getrennt, damit sie nicht alle auf die gleiche Nummer wechseln. Leider habe ich eine Menge Probleme beim Entfernen einer Nummer aus den Listen, sobald sie ausgewählt ist. So sieht es bisher aus. Jede Hilfe wäre willkommen. Danke im Voraus.Einzelne Datenquelle mit mehreren Comboboxen ändern

List<int> abilityList = allAtribs.ToList(); 
     strCombo.DataSource = new BindingSource(abilityList, null); 
     dexCombo.DataSource = new BindingSource(abilityList, null); 
     conCombo.DataSource = new BindingSource(abilityList, null); 
     intCombo.DataSource = new BindingSource(abilityList, null); 
     wisCombo.DataSource = new BindingSource(abilityList, null); 
     chaCombo.DataSource = new BindingSource(abilityList, null); 

Antwort

0

Statt List<int>, ein BindingList<int> und speichern sie in einem Formelement erstellen.

Form:

private BindingList<int> abilityList; 

Initialisierung:

// if allAttribs is int[], you can remove .ToList() 
abilityList = new BindingList<int>(allAtribs.ToList()); 
strCombo.DataSource = new BindingSource(abilityList, null); 
dexCombo.DataSource = new BindingSource(abilityList, null); 
// etc.... 

Dann können Sie einfach einen Wert von abilityList entfernen (oder neuen Wert hinzufügen, aktualisieren Verlassen Wert) und die Änderung wird automatisch in allen Kombinationsfeldern wiedergegeben werden.

Dies liegt daran, BindingList<T> zusätzlich IList<T> bietet auch Standard-Änderungsbenachrichtigungen von Daten gebunden bewusste Komponenten erkannt.

Verwandte Themen