检查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
}