在基本页面模板中,有方法NavigationHelper_LoadState(object sender, LoadStateEventArgs e){}
。如何查看上一页的内容?
if(sender.GetType() == typeof(PreviousPage)){}
不起作用!
我的主要目标是通过干净的代码了解我的数据来源。
答案 0 :(得分:2)
虽然一个选项是发送带有页面类型的参数,但我不会这样做,因为您可能需要该参数来在页面之间传递一些其他相关数据。
所以,我宁愿做这样的事情:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (Frame.CanGoBack)
{
PageStackEntry lastPage = Frame.BackStack[Frame.BackStackDepth - 1];
if (lastPage.SourcePageType == typeof(MainPage))
{
// do something
}
}
this.navigationHelper.OnNavigatedTo(e);
}
答案 1 :(得分:1)
NavigationHelper 调用NavigationHelper_LoadState(object sender, LoadStateEventArgs e){}
并且传递的发件人是 NavigationHelper 时,您的方法无效没有从导航开始的页面传递信息。
我没有看到任何可以阅读此信息的属性,但您肯定可以将之前的类型作为参数传递:
// when navigating:
Frame.Navigate(typeof(Page1), this.ToString());
// in target Page:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (e.Parameter == typeof(MainPage).ToString())
Debug.WriteLine("Previous was MainPage");
}