C# Datenbankabfrage -> Checkboxen -> Dictionary aller ausgewählten Checkboxen

H1deAndSeek

Lieutenant
Registriert
Okt. 2009
Beiträge
891
Hallo zusammen,

vorweg: ich bin absoluter Anfänger in C#.

Problemstellung:
Aus einer Datenbankabfrage hole ich mir 2 Spalten: ID, Name.
Ich habe ein GUI in der je Name eine Checkbox (Scrollbar mit Stackpanel ?) erstellt wird.
Der Anwender wählt nun einige Checkboxen aus und klickt auf einen Button.
Die Scrollbar mit den Checkboxen wird gelockt und ich erhalte ein Dictionary/Liste(bzw. etwas ähnliches) mit den ausgewählten ID,Namen Paaren bzw. reichen mir auch nur die ID's.

Meine Probleme:
- Dynamische Erstellung der Checkboxen
- Brauche ich für jede Checkbox einen eigenen Handler?
- Dictionary ist die "richtige" Wahl?


Generell würden mir auch allgemeine Sachen weiterhelfen, um das Problem zu lösen.

Vielen Dank und viele Grüße ;)
 
"Ich habe ein GUI in der je Name eine Checkbox (Scrollbar mit Stackpanel ?) erstellt wird."

Kannst du nicht einfach eine CheckedListBox nutzen?
 
Mit welcher Technologie erstellt Du das UI? WPF? WinForms?

Generell kannst Du jedes GUI Element per Code hinzufügen. WPF und WinForm Doku verraten wie. Die Referenzen auf die neuen GUI Elemente könntest Du in einer List sammeln, wenn Du möchtest. Über das Form Objekt würdest Du aber auch wieder drankommen. Die Checkboxen haben dann ein Property Checked glaube ich und einen Namen. Da brauchst Du kein Dictionary für. Und einen Handler braucht nur der Button.
 
Dynamische Erstellung: einfach ne Checkbox mit den entsprechenden Daten erstellen und zu Stackpanel.Children hinzufügen. (oder ganz andere spezielle controls verwenden die vllt. so eine Funktionalität schon unterstützen).
Handler: Du kannst auch gleiche Events von verschiedenen Checkboxen mit einem Handler abdecken, aber wenn du sowieso auf einen Button klickst könntest du das auch einfach so ohne Events auslesen. Einfach alle Checkboxen prüfen oder z.B. über Stackpanel.Children iterieren.
Dictionary macht Sinn wenn du oft auf den Namen über die Id zugreifen willst. Wenn du sowieso nur die IDs brauchst kannste auch einfach ne Liste nehmen.
 
steuerelemente zur laufzeit erzeugen - massenhaft infos bei google, z.B. hier http://dotnet-snippets.de/snippet/steuerelemente-zur-laufzeit-hinzufuegen/1690


ob du für jede checkbox einen handler erstellst (im link oben wird das z.B. für jeden button gemacht), dabei ein array oder eine liste aktualisierst, oder nach click auf deinen finalen button die checkboxen durchgehst und die checked property ausliest - obliegt ganz dir.

ich würde es mit handler machen und dann live eine liste (List<int>) pflegen. List<T> weil du ja nur die id brauchst und dann direkt LINQ auf der liste anwenden kannst, falls das notwendig ist.

sehe hier keinen sinn für ein dictionary.
 
Zurück
Oben