Beobachtungsabwicklung in C# einwickeln
-
27-10-2019 - |
Frage
Ich habe Grund eine Instanz von Wickeln von ObservableCollection<T>
in einem anderen Typ.
Ich implementiere ICollection<T>
in meinem neuen Typ. Das ist unkompliziert. Ich implementiere auch INotifyCollectionChanged
, was bedeutet implementieren
public event NotifyCollectionChangedEventHandler CollectionChanged;
Der beste Weg, den ich mir vorstellen kann, um dies zu implementieren ICollection<T>
, so was:
public void Add(T item)
{
Collection.Add(item);
if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item));
}
(Sammlung ist die Instanz von ObservableCollection<T>
dass ich wickle).
Gibt es eine Möglichkeit, die Implementierung von zu nutzen? INotifyCollectionChanged
Diese Sammlung bietet, anstatt sie selbst neu zu implementieren?
Lösung
Ja. Wenn Sie den Wert Ihrer zuweisen Collection
Eigenschaft oder Feld, Handle es ist Sammelungsveranstaltung:
Collection = new ObservableCollection<T>();
Collection.CollectionChanged += this.HandleCollectionChanged;
Dann erhöhen Sie bei der HandlecollectionChanged -Methode das eigene Sammelereignis des Objekts.