Windows phone 7 如何找到已恢复的页面?
我在我的应用程序中使用页面,让我简单地解释一下,以供您理解 我有Windows phone 7 如何找到已恢复的页面?,windows-phone-7,lifecycle,Windows Phone 7,Lifecycle,我在我的应用程序中使用页面,让我简单地解释一下,以供您理解 我有A、B和C页面。 从第A->B页, 页面A->页面C是可能的 只有当a页从B页恢复而不是从C页恢复时,我才需要执行操作 我如何才能做到这一点,我是否能够将一些标志数据从B页的on backpressed发送回A页。如果是这样的话,我在哪里可以收听到A页中的标志数据。您可以使用。从B导航到A时,将您的查询字符串添加到URL: NavigationService.Navigate(new Uri("/PageA.xaml?Previou
A、B
和C
页面。
从第A->B页,
页面A->页面C
是可能的
只有当a页从B页恢复而不是从C页恢复时,我才需要执行操作
我如何才能做到这一点,我是否能够将一些标志数据从B页的on backpressed
发送回A页。如果是这样的话,我在哪里可以收听到A页中的标志数据。您可以使用。从B
导航到A
时,将您的查询字符串添加到URL:
NavigationService.Navigate(new Uri("/PageA.xaml?PreviousPage=b", UriKind.Relative));
然后,在A的on导航到方法中,您可以检查上一页查询字符串的值,如果其值为b
,则会做出相应的反应
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string prevPage="";
NavigationContext.QueryString.TryGetValue("PreviousPage", out prevPage);
if(prevPage == "b")
{
//code to call if A is resuming from B
}
}
根据评论进行更新(将上述代码留给其他人)
关于后退键
,有两个选项。首先,您可以使用上面的代码,然后从历史记录中删除该特定页面。您可以使用上述代码中的方法执行此操作:
if(NavigationService.CanGoBack)
NavigationService.RemoveBackEntry();
你可以在这里看到更多关于这个项目的信息
或者,您可以在App.xaml.cs
中跟踪全局变量,例如,每当用户离开页面时,该变量都会更新。然后,在A
中,您可以检查该变量并查看上一页是什么(如果需要,可以重置该变量,以避免意外再次读取) 您可以使用。从B
导航到A
时,将您的查询字符串添加到URL:
NavigationService.Navigate(new Uri("/PageA.xaml?PreviousPage=b", UriKind.Relative));
然后,在A的on导航到方法中,您可以检查上一页查询字符串的值,如果其值为b
,则会做出相应的反应
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string prevPage="";
NavigationContext.QueryString.TryGetValue("PreviousPage", out prevPage);
if(prevPage == "b")
{
//code to call if A is resuming from B
}
}
根据评论进行更新(将上述代码留给其他人)
关于后退键
,有两个选项。首先,您可以使用上面的代码,然后从历史记录中删除该特定页面。您可以使用上述代码中的方法执行此操作:
if(NavigationService.CanGoBack)
NavigationService.RemoveBackEntry();
你可以在这里看到更多关于这个项目的信息
或者,您可以在App.xaml.cs
中跟踪全局变量,例如,每当用户离开页面时,该变量都会更新。然后,在A
中,您可以检查该变量并查看上一页是什么(如果需要,可以重置该变量,以避免意外再次读取) 在你的App.xaml.cs
createpublicstaticphoneapplicationpage-prevappage代码>
在第b页
和第C页
构造函数中初始化它,并在on导航的A页上初始化它,以检查它的值。各司其职
或者,您可以创建枚举
并在页面构造函数中初始化它们,然后检查页面A的onNavigatedTo
事件中的值
在你的App.xaml.cs
createpublicstaticphoneapplicationpage-prevappage中,这两种方法都应该有效代码>
在第b页
和第C页
构造函数中初始化它,并在on导航的A页上初始化它,以检查它的值。各司其职
或者,您可以创建枚举
并在页面构造函数中初始化它们,然后检查页面A的onNavigatedTo
事件中的值
这两种方法都应该有效NavigationService.Navigate(新Uri(“/PageA.xaml?PreviousPage=b”,UriKind.Relative));-->这将添加一个新页面,堆栈中将有两个页面,对吗?我需要销毁B页,然后返回A页。@arnp啊,是的,对不起,我忘了你想通过back键获得它。我已经更新了post.NavigationService.Navigate(新Uri(“/PageA.xaml?PreviousPage=b”,UriKind.Relative));-->这将添加一个新页面,堆栈中将有两个页面,对吗?我需要销毁B页,然后返回A页。@arnp啊,是的,对不起,我忘了你想通过back键获得它。我已经更新了帖子。