words_of_silence Geschrieben 8. Juli 2008 Geschrieben 8. Juli 2008 Hallo allerseits! Ich hab' da mal folgende Frage: Wie kann ich Objekte einer Klasse an ein Comboboxitem binden? In VB 6.0 gab es da die ImageCombo, wo ich an die Tag - Eigenschaft des Items immer ein Objekt anhängen konnte. Nur dieses Control gibt es leider nicht mehr in .NET und die normale Combobox besitzt leider keine Tag - Eigenschaft auf Item - Ebene. Hat wer einen Vorschlag, wie ich das sonst realisieren könnte? :confused: So long, wos Zitieren
HJST1979 Geschrieben 8. Juli 2008 Geschrieben 8. Juli 2008 Also ich weiß ja nicht was du machen willst. Wenn ich dich richtig verstehe willst du bei einer Auswahl in der combobox gleich das richtige dazugehörige Object haben !? Wenn es das Tag tatsächlich nicht gibt, hast du 2 Möglichkeiten. 1. Du machst dir eine Klasse vom Typ ComboboxITEM und erweiterst sie um die Funktion Get_Set_Tag. Dann kannst darauf auch wieder zugreifen. 2. Du lässt zu den Einträgen der Combobox (Value) eine Hashtable parallel laufen. Dann kannst über den Object=Hashtable(Comboboy.Value) auch auf das Object zugreifen Gruß Hans-Jörg Zitieren
words_of_silence Geschrieben 8. Juli 2008 Autor Geschrieben 8. Juli 2008 Hallo! Danke für deine schnelle Antwort! "Wenn ich dich richtig verstehe willst du bei einer Auswahl in der combobox gleich das richtige dazugehörige Object haben !?" - Richtig. zu Punkt 1.: Kannst du mir ein wenig mehr dazu sagen? Also Klasse erstellen, ist klar. Nur wie vereine ich dann dieses ComboItem mit meiner Combobox? Muss dieses ComboItem außer der Property "Tag" noch etwas besitzen? zu Punkt 2: Da ich die Objekte bereits in einer Collection halte, wäre das doppelt gemoppelt. Momentan funktioniert es, wenn die Anordnung der Elemente in der Combobox gleich der Anordnung in der Collection ist. Dann kann ich über die Indizes zugreifen. Jedoch wird diese Lösung problematisch, wenn ich die Combobox umsortieren möchte o.ä. So long, wos Zitieren
SoL_Psycho Geschrieben 9. Juli 2008 Geschrieben 9. Juli 2008 zu Punkt 1.: Kannst du mir ein wenig mehr dazu sagen? Also Klasse erstellen, ist klar. Nur wie vereine ich dann dieses ComboItem mit meiner Combobox? Muss dieses ComboItem außer der Property "Tag" noch etwas besitzen? Naja du lässt es ja vom "Original" erben, also kannst du es der Combobox auch einfach zuweisen Zitieren
words_of_silence Geschrieben 9. Juli 2008 Autor Geschrieben 9. Juli 2008 Okay, also in der Klasse ComboBoxItem "Inherits Combobox" sagen. Nur genau "also kannst du es der Combobox auch einfach zuweisen" da hapert's. Sorry, stehe irgendwie aufm Schlauch. :confused: Zitieren
SoL_Psycho Geschrieben 9. Juli 2008 Geschrieben 9. Juli 2008 Okay, also in der Klasse ComboBoxItem "Inherits Combobox" sagen. Nur genau "also kannst du es der Combobox auch einfach zuweisen" da hapert's. Sorry, stehe irgendwie aufm Schlauch. :confused: Du machst dir ne Klasse mit Inherits ComboBoxItem, dann packst du da noch deine zusätzlich gewollten Attribute / Methoden hinein. Zuweisen kannst du das dann vermutlich über Combobox.Item.Add(Dein Control) Zitieren
words_of_silence Geschrieben 10. Juli 2008 Autor Geschrieben 10. Juli 2008 Ahhhh, ok. Habe 'nen Tutorial gefunden und es klappt. Viel Aufwand für ein wichtiges, kleines Feature, was MS einfach mal vergessen hat. vbCity/DevCity.NET Forums :: .NET :: VB.NET :: FAQ :: Add itemData to Listbox,Combobox Danke für die Hilfe! Zitieren
HJST1979 Geschrieben 14. Juli 2008 Geschrieben 14. Juli 2008 Sorry, hatte irgendwie den Eintrag aus den Augen verloren, deshalb habe ich nicht mehr geantwortet :-( Gruß Hans-Jörg Zitieren
HJST1979 Geschrieben 14. Juli 2008 Geschrieben 14. Juli 2008 Ahhhh, ok. Habe 'nen Tutorial gefunden und es klappt. Viel Aufwand für ein wichtiges, kleines Feature, was MS einfach mal vergessen hat. vbCity/DevCity.NET Forums :: .NET :: VB.NET :: FAQ :: Add itemData to Listbox,Combobox Danke für die Hilfe! Ich glaube des würde auch einfacher gehen :-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.