我不得不說,我不確定這些是最好的方法,如果它們很常見,那就是我和我的同事在WinRT應用程序中使用的,所以我會很高興如果有人提出更好的東西(這兩個都不是那麼幹淨)。
我能想到的兩種方式來傳遞頁面的導航數據(不堅持的話)
傳遞參數
有可觸及一些常見的數據通用共享類(靜態或單例類所有的ViewModels)
對於傳承導航:
我有這個方法在我的導航服務類:
public virtual void NavigateTo(Type sourcePageType, object parameter)
{
((Frame)Window.Current.Content).Navigate(sourcePageType, parameter);
}
,我使用這樣的導航命令:
Navigation.NavigateTo(typeof(PageType), someParameters);
然後,你可以在後面的代碼獲取值導航頁
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var receivedParameter = e.Parameter as TheTypeOfThePassedParameter;
}
然後從那裏傳遞給ViewModel,也許有一個選項可以傳遞這個智慧在後面的代碼hout代碼,但我沒有試過這個。
擁有共享類:
這是非常簡單的只是靜態類或所需的字段是獨生子。
感謝那正是我需要的 –