0

我在哪里错了?

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 但没有拼写错误 谢谢

4

1 回答 1

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
}

问候,

于 2012-04-19T06:49:38.627 回答