Angenommen, ich habe eine Hauptdatenbankklasse, TvShowDatabase
, die eine Liste von Shows
enthält. Jede Show
hat eine Liste von Episodes
, von denen jede eine Length
hat. Die Objekte TvShowDatabase
, Show
und Episode
implementieren alle INotifyPropertyChanged
.Aggregate bindbarer Objekte in WPF neu zuordnen?
Ich möchte und TotalViewingPotential
, eine Eigenschaft von TvShowDatabase
, die die Length
jedes Episode
jedes Show
summiert zeigen berechnen.
Nehmen wir an, der Benutzer betrachtet diese Struktur in einem Baumstil und kann die Length
eines beliebigen Show
bearbeiten. Wenn sie dies tun, sollte die TotalViewingPotential
entsprechend aktualisiert werden, und die Ergebnisse werden auf dem Bildschirm angezeigt.
Meine Frage: In WPF (und speziell mit Prism für MVVM), was ist der beste Weg, die Installation für diese Änderungsbenachrichtigungen anzuschließen?
Ich habe in Betracht gezogen, jede Liste abzufangen (mit ObservableCollection
) und jedem neuen Artikel eine Parent
zu geben. Dies wird jedoch unordentlich, und ein Top-Down-Ansatz ist vorzuziehen.
Ich habe hyper beobachtbaren Sammlungen zu sehen (http://www.codeproject.com/Tips/694370/How-to-Listen-to-Property-Chang), aber ich mache mir Sorgen über Event-Abo-basierten Speicherlecks mit dieser Methode, und es erfordert noch ein gutes Stück von manuellen Sanitär die OnPropertyChanged(TotalViewingCollection)
Ereignisse zu erhöhen, wo nötig.
Gibt es ein Muster dafür?
Sie können Reactive Extensions für .NET betrachten, leider habe ich gerade angefangen, es zu betrachten, also fühle ich mich nicht wohl, Ihnen Ratschläge darüber zu geben –