Ich habe einige MVVM-basierte WPF-Code entwickelt und brauche ein wenig Refactoring, aber bevor ich das tue, muss ich die beste Architektur entscheiden.MVVM-Muster und semi-globale Daten
Ich begann ursprünglich mit einer Anwendung, die mehrere ähnliche (aber separate) Darstellungen meiner Daten darstellen könnte. Nennen wir es RecordsViewModel
welches eine entsprechende RecordsView
hatte. Im Laufe der Zeit stellte ich eine SettingsViewModel
vor, die in den Konstruktor der RecordsViewModel
übertragen und sichtbar veröffentlicht wurde (so dass RecordsView
verwendet werden kann). Die SettingsViewModel
ist registriert, so dass Änderungen in allen meinen Ansichten widergespiegelt werden.
Jetzt möchte ich RecordsView
etwas teilen, weil es jetzt zwei verschiedene Ansichten enthält.
Das Problem, das ich habe, ist:
- die neue (
RecordsMainView
undRecordsAlternativeView
) wollen beide Einstellungen sehen. - Im Gegensatz zum früheren Programm
RecordsView
, das programmgesteuert instanziiert wird, werden diese neuen Ansichten von Xaml (Standardkonstruktor) instanziiert.
So scheinen meine Optionen zu sein:
- das Tree Model Geht nach oben einen Elternteil mit einem Setting
- Stellen Einstellungen ein
DependencyProperty
auf den Kontrollen zu finden und die XAML machen verbinden die Eigenschaft auf die Beispiel. - Machen
SettingsViewModel
ein Singleton.
Andere, bessere, Optionen? Was würdest du am besten finden?