检查windows通用c#代码中是否传递了参数

检查windows通用c#代码中是否传递了参数,c#,win-universal-app,C#,Win Universal App,我正在传递一个参数,以允许用户返回并进行更改 private void go_back_btn_Click(object sender, RoutedEventArgs e) { Frame.Navigate(typeof(TruckRegistrationPage), this.truckdetails); } 现在进入trruck注册页面 protected override void OnNavigatedTo(Navigati

我正在传递一个参数,以允许用户返回并进行更改

 private void go_back_btn_Click(object sender, RoutedEventArgs e)
    { 

         Frame.Navigate(typeof(TruckRegistrationPage), this.truckdetails);  
    }
现在进入trruck注册页面

        protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        this.changeddetails= (TruckRegistrationDetails)e.Parameter;
        //set the form fields based on the details
        if (e.Parameter) //this throws an error of boolean not casted
        {
            truck_reg_no.Text = changeddetails.reg_no;
            transporter_name.Text = truckdetails.owner_id;

             .......assign other xaml controls

        }

    } 
am传递的参数类型为
TruckRegistrationDetails
,它是一个包含以下属性的类

    class TruckRegistrationDetails
    {
      public int id { get; set; }
      public string reg_no { get; set; }
       public int truck_category { get; set; }

        .......others
    }

如何检查是否传递了任何参数,并因此分配xaml控件值

将代码更改为该值

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        changeddetails = (TruckRegistrationDetails)e.Parameter;

        if (changeddetails != null) 
        {
            truck_reg_no.Text = changeddetails.reg_no;
            //do what ever you want ^^
        }
    }

您检查的是布尔值,但
e.Parameter
是一个对象。以下是指向MSDN的链接

我使用此方法时遇到一个错误,因为在某个点上,OnNavigatedTo使用空字符串的NavigationEventArgs.Parameter调用。当对象被转换为我传递的对象类型时,这会导致转换异常。 我用过:

这将首先检查对象的类型,以查看它是否与预期的类型匹配,然后强制转换将不会引发异常

        if (args.Parameter is DeviceInformation)
        {
            DeviceInformation deviceInfo = (DeviceInformation)args.Parameter;
            //Do something with object
        }