Windows phone 8.1 如何在windows phone app 8.1中使用以前调用的web服务数据导航回页面?

Windows phone 8.1 如何在windows phone app 8.1中使用以前调用的web服务数据导航回页面?,windows-phone-8.1,Windows Phone 8.1,我有一个windows phone 8.1的基本应用程序,这是一个空白应用程序; 我想导航到我的上一页,而不调用我以前调用的web服务。 是否有任何堆栈或任何历史记录方法,我可以轻松地管理上一页 Frame rootFrame=Window.Current.Content作为Frame; if(rootFrame!=null&&rootFrame.CanGoBack) { rootFrame.GoBack(); e、 已处理=正确; } 此代码不适用于我的框架。因为它向我发送应用程序开始的第一

我有一个windows phone 8.1的基本应用程序,这是一个空白应用程序; 我想导航到我的上一页,而不调用我以前调用的web服务。 是否有任何堆栈或任何历史记录方法,我可以轻松地管理上一页

Frame rootFrame=Window.Current.Content作为Frame;
if(rootFrame!=null&&rootFrame.CanGoBack)
{
rootFrame.GoBack();
e、 已处理=正确;
}
此代码不适用于我的框架。因为它向我发送应用程序开始的第一页

完整代码

当然------------------第1页设计


新答案

您不会注销BackPressed事件,但每次加载页面时仍会添加它们,因此会执行多次

正确注销事件。 在这种情况下,执行此操作的好地方是pages Unload事件

您还可以查看VisualStudio模板中包含的NavigationHelper类theta


旧答案

每个页面都有一个NavigationCacheMode属性,通过将其设置为enabled(仅在构造函数中有效),可以在导航时保留其实例

public MainPage() {
  this.NavigationCacheMode = NavigationCacheMode.Required;
}
找到简短的描述


警告:缓存和导航/激活/挂起是一个复杂的主题,我建议您仔细阅读。

您能提供更多信息和更完整的示例吗?您提供的代码段对于处理“后退”按钮的按下似乎是正确的。当然,除非你把它放在每一页上(而不是全球)。谢谢你的重播@Peter Torr…我有5页,通过它们我必须在完整的应用程序中导航。不存在任何序列感谢Kai Brummund,我有这个策略,我写了这个。NavigationCacheMode=NavigationCacheMode.Required;在每个页面的构造函数上。至少创建了一个处理程序,如Frame-rootFrame=Window.Current.Content-as-Frame;void HardwareButtons_BackPressed(对象发送方,Windows.Phone.UI.Input.BackPressedEventArgs e){rootFrame.GoBack();e.Handled=true;}但仍不起作用。。。请给我提供准确的解决方案,你能澄清你的问题吗?您正在导航到第二页,对吗?按“后退”按钮可以返回到第一页,对吗?不知道你的页面上发生了什么,但如果它被缓存,它将被显示(并且它被导航到调用)。当您的应用程序在这段时间内关闭时,这当然不会发生。也:不要只缓存所有的东西。它需要很多内存。将您的webservice结果缓存到您的模型中,然后使用缓存的结果重新创建页面。再次感谢…我有3个页面page1、page2和page3…我从我的应用程序的page1开始。。然后在下一页我打开了第2页,在下一页按钮我打开了第3页…现在当我点击back按钮时,应用程序导航到第1页,但它应该返回到第2页。。。关于你的信息,我想告诉你backbutton是我的硬件backbutton。我已经在上面创建了处理该事件的处理程序。在这种情况下,我编写了您告诉我的代码“Frame.GoBack();以及e.Handled=true;”。。。。。。。。。。但它仍然不起作用……所以请告诉我问题在于……是的,它应该。您能提供完整的代码(导航和后台处理)吗?