Windows 8 Page.on导航到不';无法在Windows应用商店应用程序中调用

Windows 8 Page.on导航到不';无法在Windows应用商店应用程序中调用,windows-8,winrt-xaml,Windows 8,Winrt Xaml,我有一个Windows应用商店乱七八糟的应用程序。我添加了一个基本页面,并添加了常用类,如LayoutAwarePage 但是当应用程序启动时,不会调用Page.OnNavigatedTo。MSDN文件说: 在加载页面并成为当前源时调用 父帧 这在发射过程中发生。当LoadState没有被调用时,我发现了这一点 Rick Barraza在他的演示中使用LoadState,OnNavigatedTo调用它: 我知道有些东西坏了,因为现在我添加了一些导航按钮,OnNavigatedFrom被调用了

我有一个Windows应用商店乱七八糟的应用程序。我添加了一个基本页面,并添加了常用类,如LayoutAwarePage

但是当应用程序启动时,不会调用Page.OnNavigatedTo。MSDN文件说:

在加载页面并成为当前源时调用 父帧

这在发射过程中发生。当LoadState没有被调用时,我发现了这一点

Rick Barraza在他的演示中使用LoadState,OnNavigatedTo调用它:

我知道有些东西坏了,因为现在我添加了一些导航按钮,OnNavigatedFrom被调用了,但由于_pageKey为null,因为它不是由OnNavigatedTo设置的,所以会被忽略

我真的被卡住了。这是微软原生页面类的一个失败,但很明显,我是唯一一个有这个问题的人,而且它是100%可发现的。奇怪

更新1

我添加了一个新的Grid应用程序项目,效果很好。普通的东西都是标准的,但它与在向空应用程序添加基本页面时编写的普通东西不同

我将尝试从一个新的空应用程序重新编程

更新2


好吧,我放弃了。一个新的空白应用程序和添加一个新的空白页面是可以的。我将复制并粘贴我的页面,并假装它从未发生过。

为了让OnNavigatedTo被调用,您的框架必须调用它的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事件将不会触发,因为该页仅加载,未导航到。

我也遇到了同样的问题,这是由于我添加的基本页面中存在OnNavigatedTo的空覆盖

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)
        {
        }
    }
公共密封部分类MvvmView1
{
公共MvvmView1()
{
this.InitializeComponent();
}
/// 
///当此页面即将显示在框架中时调用。
/// 
///描述如何访问此页的事件数据。参数
///属性通常用于配置页面。
受保护的覆盖无效OnNavigatedTo(NavigationEventArgs e)
{
}
}

知道这一点很有用,但这是一个标准的模板化应用程序,因此我在app.xaml.cs中使用了“if(!rootFrame.Navigate(typeof(BasicPage1),args.Arguments)),它可以工作,但不会调用OnNavigatedTo。遗憾的是,我没有一个区分工具,因为我现在有两个“相同”的项目,一个有效,一个无效。不知道这是否是我的原因,但一个有用的答案+1