Entwickler-Ecke

WinForms - Anzeigetext in einer Listbox erneuern


Namenlosnameless - Mo 29.08.11 16:08
Titel: Anzeigetext in einer Listbox erneuern
Hallo!

Mal wieder ein Problemchen...

Ich hab eine Listbox die mit vielen Instanzen einer Klasse "Hund" befüllt ist. Damit in der Listbox etwas "vernünftiges" angezeigt wird, habe ich die .ToString() Methode der Klasse "Hund" überschrieben, sodass in der ListBox der Wert der Variablen "name" aus der Klasse "Hund" aufscheint.
Funktioniert beim ersten aufruf (wo die ListBox die modifizierte .ToString() aufruft) wunderbar. Allerdings wenn dann die "name" Property vom User geändert wird funktioniert das ganze nicht mehr!

Wie zwinge ich die ListBox nochmal die .ToString() des Items aufzurufen, sodass der Name geändert angezeigt wird?

mfg Christoph


dark-destination1988 - Mo 29.08.11 16:11


C#-Quelltext
1:
Listbox.DisplayMember = "Name";                    


Ralf Jansen - Mo 29.08.11 16:16

Wie hast du befüllt?

Falls du eine List<T> (oder andere generische Liste) über eine BindingSource an die Listbox gebunden hast und dazu noch den DisplayMember richtig setzt anstatt ToString zu missbrauchen sollte das funktionieren.


Namenlosnameless - Mo 29.08.11 16:20

Passt! Danke!

Mir ist zwar nicht ganz klar was die rechte seite macht, bzw wofür ich sie brauch (außer das der Compiler nicht meckert) aber solange es funktioniert XD

@Ralf: Nein ich verwende keine BindingSource!


dark-destination1988 - Mo 29.08.11 16:24

naja die gibt den Propertynamen des Klassenobjektes an, welches angezeigt werden soll


Namenlosnameless - Mo 29.08.11 16:30

achsoo :) verstehe

kannst du mir vlt auch noch sagen wie man bei der Methode verhindert das der SelectedIndex um eins erhöt wird?