Immaginiamo di avere due pagine: MainPage.xaml
e SecondPage.xaml
.
anche tu hai due viewModels MainViewModel.cs
e SecondViewModel.cs
se utilizzi qualche framework MVVM (MVVM light ad esempio link ) puoi utilizzare ViewModelLocator o puoi scriverne uno tuo.
quindi, nell'evento OnNavigatied in ogni pagina puoi eseguire questo codice:
var viewModel = ViewModelLocator.MainViewModel;
this.DataContext = viewModel;
Inoltre puoi fare in un xaml. Guarda l'esempio qui: link
È possibile iniettare un fornitore di dati per ogni modello di vista. Pertanto, quando l'utente aggiunge i dati su MainPage
, MainViewModel
salva i dati nel fornitore di dati (che conserva i dati in una memoria o li salva nell'archivio isolato).
Quindi, quando si naviga su SecondPage, SecondViewModel riceve un dato da dataProvider
.
ViewModelLocator
dovrebbe essere responcible per i modelli Main e Second view ha la stessa DataProvider
instance.
Se è necessario passare qualsiasi flag (sono stati aggiornati i dati, Id, ect) è possibile farlo passandolo in una stringa di query. ( link )
Questa variante è buona perché la tua app può essere tosta ( collegamento ) dal sistema operativo in qualsiasi momento. È possibile gestire questa situazione inviando un segnale (eseguendo un comando, inviando un messaggio) a un modello di vista corrente. E salverà i dati nella memoria. Il