ald*_*ain 1 c# navigation windows-phone-8.1
假设我们有一些PagePageA,并且我有一个按钮,当单击时,执行以下操作:
Frame.NavigateTo(typeof(PageB));
Run Code Online (Sandbox Code Playgroud)
在用户完成操作后,他从PageB导航回到PageA调用 Frame.GoBack()
我希望能够确定我是从PageB导航回来的
我可以用:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
e.NavigationMode
}
Run Code Online (Sandbox Code Playgroud)
但这只能告诉我,我正在航行,而不是我从PageB回来.
这甚至是一个很好的Windows-phone-guidelines方法(在文档中没有找到这个特殊情况)?
我认为你应该能够通过使用包含前向导航历史的Frame.ForwardStack属性来实现.
一个应该工作的简短样本:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var lastPage = Frame.ForwardStack.LastOrDefault();
if (lastPage != null && lastPage.SourcePageType.Equals(typeof(desiredPage)))
{ /* do something */ }
}
Run Code Online (Sandbox Code Playgroud)