Moin,
ich habe ein Projekt, in dem ich Daten, die ich in Objekten speicher, die ich in einer BindingList verwalte, in einer Listbox anzeigen möchte.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| public class Character : INotifyPropertyChanged { [...] public event PropertyChangedEventHandler PropertyChanged; [...] public string Surename { get { return mySurename; } set { mySurename = value; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("Surename")); } } } [...] }
public class CharacterList : BindingList<Character> {[...]} |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| private CharacterList data = new CharacterList(); [...] private void Form1_Load(object sender, EventArgs e) { listBoxData.DataSource = data; listBoxData.DisplayMember = "ShortName"; [...] } |
Wenn ich nun ein neues Objekt zu data hinzufüge, ist das kein Problem. Auch löschen geht tadellos. Aber wenn ich nun einen Datensatz verändere, sollte das eigentlich in der ListBox angezeigt werden. Leider bleibt die betroffene Zeile unberührt und einer (belibige?) anderen Zeile wird dann der neue Wert zugewiesen. Der Datensatz, der ursprünglich an der neuen Stelle stand, wird nicht mehr angezeigt.
TIA
Konstantin
Meine Programme sind perfekt, der Computer versteht sie bloß nicht.