页面之间的Windows Phone 8导航问题

时间:2013-09-18 22:41:58

标签: c# windows-phone-8 navigation

我有一个带登录过程的Windows Phone应用程序,该登录过程访问外部API。 登录按钮的控制器最初运行了一些代码,这些代码立即导航到仪表板页面:

    private void LogInButton_Click(object sender, RoutedEventArgs e)
    {
        ...

        App.RootFrame.Navigate(new Uri("/Interface.xaml", UriKind.RelativeOrAbsolute));
    }

这很好用!

稍后,我认为最好实现与api的实际连接,检查用户详细信息是否正确,然后重定向到仪表板。为了简洁起见,我已经取出了api部分,但是让我们说这个函数作为一个 Action委托传递到整个地方,然后在它正确的位置,控制器中被调用..

    ...
    // This method is also located in the controller class, but it is called by another class
    public void LoadDashboard( DataUpdateState data )
    {
        //data.AsyncResponse
        App.RootFrame.Navigate(new Uri("/Interface.xaml", UriKind.RelativeOrAbsolute));
    }

问题是,导航方法现在不再有效,它会在RootFrame_NavigationFailed上触发调试中断。

我在这里不理解什么?

有没有办法找出它在App类中加载导航失败方法的原因

1 个答案:

答案 0 :(得分:2)

您可以在导航失败事件的NavigationFailedEventArgs中获取更多详细信息(在Exception参数中)。

最可能的原因是您尝试从非ui线程调用Navigate。如果是这种情况只是使用调度程序在ui线程上发送它:

Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
        App.RootFrame.Navigate(new Uri("/Interface.xaml", UriKind.RelativeOrAbsolute));

            });