2010-08-16 9 views
7

Utworzono kolekcję opakowującą dla ObservableCollection, która subskrybuje każde zdarzenie PropertyChanged elementu i ponownie wyświetla je jako własne zdarzenie ItemPropertyChanged. Zrobiłem to za pomocą podobnej metody do tego, co opisałem: here. Czy istnieje lepszy sposób? Czy brakuje mi innej kolekcji .NET, która już ma takie zachowanie?Odsłuchanie zdarzenia PropertyChanged dowolnego elementu w ObservableCollection <INotifyPropertyChanged>

+0

Wygląda na to, że może to być dość drogie, gdy na przykład budujesz bardzo dużą kolekcję. Mam nadzieję, że jest lepsza opcja. – kbrimington

+0

Nie ma takiego, który widziałem. – bporter

+0

Jaki jest cel tworzenia własnego wydarzenia zamiast używania standardowych interfejsów INotifyPropertyChanged/ICollectionChanged? – Goblin

Odpowiedz

0

jestem przy założeniu, że są wypalania tego zdarzenia w celu obliczenia agregatu. Mam inne rozwiązanie tego problemu. Rozważ użycie Update Controls with linq. Możesz deklaratywnie opisać swój agregat za pomocą linq, a kontrolki aktualizacji będą śledzić zależności w obrębie kolekcji. Ilekroć kolekcja ulegnie zmianie lub jakakolwiek z przywoływanych właściwości ulegnie zmianie, wówczas zmieni ona wartość zagregowaną.

Powiązane problemy