Opracowałem trochę kodu WPF opartego na MVVM i potrzebuję drobnego refaktoryzacji, ale zanim to zrobię, muszę wybrać najlepszą architekturę.Dane MVVM i pół-globalne dane
Pierwotnie zacząłem od aplikacji, która może przedstawiać kilka podobnych (ale oddzielnych) reprezentacji moich danych. Nazwijmy to RecordsViewModel
, który miał odpowiadający RecordsView
. W miarę upływu czasu wprowadziłem SettingsViewModel
, który został przekazany konstruktorowi RecordsViewModel
i opublikowany w widoczny sposób (dzięki czemu można go używać pod RecordsView
). SettingsViewModel
jest zarejestrowany, aby zmiany były odzwierciedlane we wszystkich moich widokach.
Teraz chcę podzielić RecordsView
trochę, ponieważ teraz zawiera dwa różne widoki.
Problem mam jest:
- nowy (
RecordsMainView
iRecordsAlternativeView
) zarówno chcą zobaczyć ustawienia. - Inaczej niż wcześniejsze
RecordsView
, które jest programowo tworzone, te nowe widoki są tworzone z Xaml (domyślny konstruktor).
Więc moje opcje wydają się być:
- Spacer po modelu drzewo w górę, aby znaleźć rodzica z Ustawienia
- wprowadzić ustawienia do
DependencyProperty
na kontrolach i uczynić XAML przyłączyć się obiekt do instancja. - Ustaw
SettingsViewModel
Singleton.
Jakieś inne, lepsze, opcje? Które uważasz za najlepsze?