在试图确定为什么我的应用程序(基于“空白应用程序”模板进入这个勇敢的新世界)没有像我预期的那样工作(http://stackoverflow.com/questions/14467756/why-would-my -event-handler-not-get-called),我开始了一个新的空白项目,然后删除了 MainPage 并添加了一个新的基本(非空白)页面,我将其命名为 MainPage 以纪念已故的页面(并作为对传统和懒惰——所以我不必更改导航到该页面的 app.xaml.cs 中的代码)。
Blank 应用程序像这样创建了原始 MainPage.xaml.cs(自动生成的注释被省略):
namespace AsYouWish
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
}
}
...我用 BasicPage(不是 BlankPage)替换了它,它生成了这个:
namespace AsYouWish
{
public sealed partial class MainPage : AsYouWish.Common.LayoutAwarePage
{
public MainPage()
{
this.InitializeComponent();
}
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
}
protected override void SaveState(Dictionary<String, Object> pageState)
{
}
}
所以 Basic Page 得到 LoadState() 和 SaveState(),而 Blank Page 的 MainPage 有 OnNavigatedTo()。为什么基本页面没有 OnNavigatedTo() 事件?似乎每个页面都有被导航到(和从,但我认为该事件更有可能是可选/不必要的)的可能性。