我有一个应用程序有2个表单,主要表单和属性表单,当我单击导航到属性的按钮然后我单击后退按钮(硬件)我得到我期望的,我的应用程序返回到主窗体,但如果我应用属性并再次导航到主页面并再次按下后退按钮我返回属性,如果我继续推回,我可以返回无限属性/主页面,这是不好的,因为主页面已经改变了它的属性。
Good cases:
MainPage ---> properties --back--> MainPage (No properties were set)
MainPage ---> properties --set--> newMainPage
MainPage ---> properties --set--> MainPage --back--> closeApp
Bad cases:
MainPage ---> properties --set--> MainPage --back--> properties --back--> oldMainPage
MainPage ---> properties --set--> newMainPage ---> properties --set--> new_newMainPage --back--> properties --back--> oldMainPage --back--> properties --back--> old_oldMainPage
也许我可以删除导航缓存?我试过这个,但编译器告诉我它只读:
this.NavigationCacheMode = System.Windows.Navigation.NavigationCacheMode.Disabled;
我当前的导航代码是:
NavigationService.Navigate(new Uri("/Properties.xaml",UriKind.RelativeOrAbsolute));
and
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));
答案 0 :(得分:3)
Solving Circular Navigation in Windows Phone Silverlight Applications已针对此问题实施。
或者你可以GoBack并刷新你的主页,而不是导航到主页的新实例,如果你发现更自然。