Windows Phone导航代码错误

时间:2012-04-19 00:20:14

标签: silverlight windows-phone-7 navigation

我在哪里错了?

private void lstCars_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    string currCar = (sender as ListBox).SelectedItem as string;
    NavigationService.Navigate(new Uri("/ViewCarDetails.xaml?info=" + currCar, UriKind.Relative));
}

这是我试图导航到

的页面
        public ViewCarDetails(string registrationNum)
    {
         //stuff
    }

这是我收到错误时程序跳转到的代码(在App.xaml.cs中)

        private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
    {
        if (System.Diagnostics.Debugger.IsAttached)
        {
            // A navigation has failed; break into the debugger
            System.Diagnostics.Debugger.Break();
        }
    }

我已经检查了URI,但没有输入错别字 谢谢

1 个答案:

答案 0 :(得分:1)

问题是你通过NavigationService传递一个参数,而ViewCarDetails类构造函数正在期待一个你没有经过的参数。

要解决这个问题,你必须创建一个没有参数的构造函数,并从NavigatedTo事件中获取通过导航服务的参数,如下所示:

public ViewCarDetails() 
    { 
         //stuff 
    } 

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        string registrationNum = string.Empty;
        if (NavigationContext.QueryString.TryGetValue("index", out registrationNum))
        {
                         //do stuff
        }
    }

尝试一下,让我们知道,

增加:

public class ViewCarDetails : PhoneApplicationPage
{
    private string registrationNum;

    public ViewCarDetails() 
        { 
             //stuff 
        } 
    protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            registrationNum = string.Empty;
            if (NavigationContext.QueryString.TryGetValue("index", out registrationNum))
            {
                             //do stuff
            }
        }
    //other methods and properties
}

的问候,