2012-05-02 24 views
2

说我有两个页面,A和B.保存页面状态航行出来的时候

用户可以修改页面上的事物之间的然后导航到页面B. 当他第B,他点击“返回“按钮转到页面A. 以前完成的所有操作都会丢失。

有一种方法,通过使用

this.NavigationCacheMode = 
     Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled; 

但是,有没有办法知道该页面是否是通过使用后退按钮打开第一次获得完全一样的状态?

回答

2

是的,它是:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    if (e.NavigationMode == NavigationMode.Back) 
    { 
    // LoadPreviousSate... 
    } 
} 

你也应该(在App.xaml中的OnLaunched事件)已经来看看ApplicationExecutionState。如果您导航到页面B,应用程序暂停,应用程序继续,用户导航到页面A NavigationModeNew

+0

谢谢。有没有办法保存我想要重复使用的东西? (一些文本没有被机制或其他东西保存) – Jonas

+0

你必须自己处理。如果您要保存的文本框中有一些文本(而不是通过缓存保存),请将其写入独立的存储或Appsettings。你也可以尝试设置'this.NavigationCacheMode' ='NavigationCacheMode.Required;' –