Entwickler-Ecke
C# - Die Sprache - PropertyChanged Event von INotifyPropertyChanged mitbekommen
ebber - Fr 19.10.12 18:07
Titel: PropertyChanged Event von INotifyPropertyChanged mitbekommen
Hallo,
ich habe eine Liste:
C#-Quelltext
1:
| public static ObservableCollection<Tme> ls = new ObservableCollection<Tme>() |
dazu habe ich die Klasse:
C#-Quelltext
1: 2: 3:
| public class Tme: INotifyPropertyChanged { ... |
Das INotifyPropertyChanged hat ein Event: "PropertyChanged".
Nu ist das Problem, ich möchte gerne mitbekommen wenn dieses Event ausgelöst wird. Aber wie komme ich von meiner Liste ls irgendwohin wo ich dahinterschreiben kann += ... ? Also ls......PropertyChanged += ... ? Geht das überhaupt?
MfG
Christian S. - Fr 19.10.12 18:23
Simpelantwort: Einfach auf die Elemente der Liste zugreifen:
C#-Quelltext
1:
| ls[0].PropertyChanged += ... |
Oder, wenn strikt nur Elemente, die in der Liste sind, "beobachtet" werden sollen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| static void Main(string[] args) { var ls = new ObservableCollection<Foo>(); ls.CollectionChanged += ls_CollectionChanged;
Console.ReadLine(); }
static void ls_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Add || e.Action == NotifyCollectionChangedAction.Replace) foreach(Foo element in e.NewItems) element.PropertyChanged += elementChanged;
if (e.Action == NotifyCollectionChangedAction.Remove || e.Action == NotifyCollectionChangedAction.Reset || e.Action == NotifyCollectionChangedAction.Replace) foreach (Foo element in e.OldItems) element.PropertyChanged -= elementChanged; } |
Auf die weise wird auf die Änderungen "gehorcht", sobald ein Element der Liste hinzugefügt wird und das nicht mehr, sobald es daraus entfernt wird.
Grüße,
Christian
ebber - Fr 19.10.12 21:03
Danke, das letztere war genau das was ich gesucht hatte.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!