2010-08-16 19 views
7

Ich habe eine Wrapper-Auflistung für ObservableCollection erstellt, die jedes Item-PropertyChanged-Ereignis abonniert und es als eigenes Ereignis ItemPropertyChanged erneut absetzt. Ich tat dies mit einer ähnlichen Methode wie ich beschrieben here. Gibt es einen besseren Weg? Fehle ich eine andere .NET-Sammlung, die bereits diese Art von Verhalten aufweist?Hören Sie sich das PropertyChanged-Ereignis eines beliebigen Objekts in einer ObservableCollection an <INotifyPropertyChanged>

+0

Das sieht so aus, als könnte es ziemlich teuer sein, wenn man zum Beispiel eine sehr große Sammlung baut. Ich würde mir wünschen, dass es eine bessere Option gibt. – kbrimington

+0

Es gibt keinen, den ich gesehen habe. – bporter

+0

Welchen Zweck hat es, ein eigenes Ereignis zu erstellen, anstatt die Standardschnittstelle INotifyPropertyChanged/ICollectionChanged zu verwenden? – Goblin

Antwort

0

Ich gehe davon aus, dass Sie dieses Ereignis, um feuern ein Aggregat zu berechnen. Ich habe eine andere Lösung für dieses Problem. Erwägen Sie die Verwendung von Update Controls with linq. Sie können Ihr Aggregat mit linq deklarativ beschreiben, und Update Controls wird seine Abhängigkeiten innerhalb Ihrer Sammlung verfolgen. Wenn sich die Sammlung ändert oder sich eine der referenzierten Eigenschaften ändert, wird das Aggregat erneut bewertet.