Ho sviluppato un codice WPF basato su MVVM e ho bisogno di qualche piccolo refactoring ma prima di farlo ho bisogno di decidere la migliore architettura.Dati MVVM e dati semi-globali
Inizialmente avevo iniziato con un'applicazione che poteva presentare diverse rappresentazioni simili (ma separate) dei miei dati. Chiamiamolo RecordsViewModel
che aveva un corrispondente RecordsView
. Col passare del tempo, ho introdotto un SettingsViewModel
che è stato passato nel costruttore del RecordsViewModel
e pubblicato visibilmente (permettendo a RecordsView
di usarlo). Lo SettingsViewModel
è registrato in modo che le modifiche si riflettano in tutte le mie viste.
Ora voglio dividere lo RecordsView
un po 'perché ora contiene due viste distinte.
Il problema che ho è:
- il nuovo (e
RecordsMainView
RecordsAlternativeView
) entrambi vogliono vedere Impostazioni. - a differenza del precedente
RecordsView
che viene istanziato a livello di codice, queste nuove viste sono istanziate da Xaml (costruttore predefinito).
Quindi le mie opzioni sembrano essere:
- Walk the Albero modello verso l'alto per trovare un genitore con un Impostazioni
- eseguire le impostazioni di un
DependencyProperty
sui controlli e rendere il Xaml unirsi alla proprietà al esempio. - Marca
SettingsViewModel
a Singleton.
Altre opzioni, migliori? Quale considereresti meglio?