如何在Frame.GoBack()上获取有关上一页的信息

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方法(在文档中没有找到这个特殊情况)?

Rom*_*asz 5

我认为你应该能够通过使用包含前向导航历史的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)