Windows phone 7 windows phone 7应用程序-后退按钮导致新页面实例

Windows phone 7 windows phone 7应用程序-后退按钮导致新页面实例,windows-phone-7,windows-phone-7-emulator,Windows Phone 7,Windows Phone 7 Emulator,我遇到了一个问题,在emulator中的某些实例上,当我单击back hardware按钮时,back page会加载构造函数,而在其他一些时间则不会调用构造函数。这是为什么?这是因为它是模拟器吗 您是如何执行导航的?您是否取消初始的OnNavigationFrom以执行动画,然后在动画完成后再次启动导航 protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)

我遇到了一个问题,在emulator中的某些实例上,当我单击back hardware按钮时,back page会加载构造函数,而在其他一些时间则不会调用构造函数。这是为什么?这是因为它是模拟器吗

您是如何执行导航的?您是否取消初始的OnNavigationFrom以执行动画,然后在动画完成后再次启动导航

protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
{
    if (_pendingNavigation == null)
    {
        VisualStateManager.GoToState(this, "LeavingPage", true);
        _pendingNavigation = e.Uri;
        e.Cancel = true;
    }

    base.OnNavigatingFrom(e);
}

void LeavingPage_Completed(object sender, EventArgs e)
{
    var uri = _pendingNavigation;
    NavigationService.Navigate(uri);
    _pendingNavigation = null;
}
当您调用NavigationService.Navigate()时,就会出现此错误,然后将新页面实例添加到导航堆栈中。要修复此错误,您需要检查并确保初始页面导航是“新”导航。大概是这样的:

if (e.NavigationMode == NavigationMode.New && _pendingNavigation == null)
{
    VisualStateManager.GoToState(this, "LeavingPage", true);
   _pendingNavigation = e.Uri;
   e.Cancel = true;
}

您是如何执行导航的?您是否取消初始的OnNavigationFrom以执行动画,然后在动画完成后再次启动导航

protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
{
    if (_pendingNavigation == null)
    {
        VisualStateManager.GoToState(this, "LeavingPage", true);
        _pendingNavigation = e.Uri;
        e.Cancel = true;
    }

    base.OnNavigatingFrom(e);
}

void LeavingPage_Completed(object sender, EventArgs e)
{
    var uri = _pendingNavigation;
    NavigationService.Navigate(uri);
    _pendingNavigation = null;
}
当您调用NavigationService.Navigate()时,就会出现此错误,然后将新页面实例添加到导航堆栈中。要修复此错误,您需要检查并确保初始页面导航是“新”导航。大概是这样的:

if (e.NavigationMode == NavigationMode.New && _pendingNavigation == null)
{
    VisualStateManager.GoToState(this, "LeavingPage", true);
   _pendingNavigation = e.Uri;
   e.Cancel = true;
}

单击“后退”按钮之前,您做了什么?导航到新页面?点击主页(windows)按钮?你有解决方案吗???在点击后退按钮之前你做了什么?导航到新页面?点击主页(windows)按钮?你有解决方案吗???