我的应用程序周围有一个Windows应用商店。我添加了一个Basic Page,它添加了Common类,例如LayoutAwarePage。
但是Page.OnNavigatedTo在应用启动时没有被调用。 MSDN文档说:
加载页面时调用并成为当前的源 父框架
在发布期间会发生什么。我在没有调用LoadState时发现了这一点。
Rick Barraza在他的演示中使用了由OnNavigatedTo调用的LoadState:
我知道有些东西被破坏了,因为现在我已经添加了一些导航按钮,OnNavigatedFrom 被调用但是由于_pageKey为空而失败,因为它没有被OnNavigatedTo设置。
我其实很困惑。这是微软本土页面课程的失败,但显然我是唯一有这个问题并且100%可被发现的人。奇
更新1
我添加了一个新的Grid App项目,并且可行。常见的东西都是标准的,但它与将基本页面添加到空应用程序时所写的常用内容不同。
我会尝试从一个新的空应用程序重新编写它。
更新2
好吧,我放弃了。一个新的空白应用程序并添加一个新的空白页面是好的。我只是复制并粘贴我的页面并假装它从未发生过。
答案 0 :(得分:2)
我遇到了同样的问题,这是由于我添加的基本页面中存在OnNavigateTo的空重写。
public sealed partial class MvvmView1
{
public MvvmView1()
{
this.InitializeComponent();
}
/// <summary>
/// Invoked when this page is about to be displayed in a Frame.
/// </summary>
/// <param name="e">Event data that describes how this page was reached. The Parameter
/// property is typically used to configure the page.</param>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
}
答案 1 :(得分:1)
为了让OnNavigatedTo被调用,你的Frame必须调用它的Navigate方法。
Frame localFrame = this.MyFrame; //this assumes MyFrame is Frame that exists in xaml and has a name
localFrame.Navigate(new myPage());
如果您正在使用内容注入
localFrame.Content = new myPage();
myPage的OnNavigatedTo事件不会触发,因为页面只是加载,而不是导航到。