我正在使用C#Winforms开展一个学校项目,我必须创建一个汽车销售发票并打开一个新表格,其中包含从组合框中选择的车辆信息。如何根据组合框中的SelectedItem获取Vehicle对象或其属性?
Vehicle对象位于一个列表中,该列表绑定到绑定到组合框的BindingSource。我能够将静态字符串传递给此赋值的另一个组件中的新表单,但我无法弄清楚如何检索对象信息。
我的车辆列表绑在组合框上。 DataRetriever是我们为我们提供Vehicle对象的类。它们具有自动实现的属性(品牌,型号,ID,颜色等)
List<Vehicle> vehicles = DataRetriever.GetVehicles();
BindingSource vehiclesBindingSource = new BindingSource();
vehiclesBindingSource.DataSource = vehicles;
this.cboVehicle.DataSource = vehiclesBindingSource;
this.cboVehicle.DisplayMember = "stockID";
this.cboVehicle.ValueMember = "basePrice";
我希望能够将信息传递到此表单,并显示有关带有标签的所选车辆的信息。
private void vehicleInformationToolStripMenuItem_Click(object sender, EventArgs e)
{
VehicleInformation vehicleInformation = new VehicleInformation();
vehicleInformation.Show();
}
Form_Load
List<VecDetails> lstMasterDetails = new List<VecDetails>();
private void frmBarcode_Load(object sender, EventArgs e)
{
VechicleDetails();
BindingSource vehiclesBindingSource = new BindingSource();
vehiclesBindingSource.DataSource = lstMasterDetails;
this.comboBox1.DataSource = vehiclesBindingSource;
this.comboBox1.DisplayMember = "stockID";
this.comboBox1.ValueMember = "basePrice";
}
VechicleDetails()
方法我只是生成样本值所以我可以他们他们到ComboBox
private void VechicleDetails()
{
//Sample Method to Generate Some value and
//load it to List<VecDetails> and then to ComboBox
for (int n = 0; n < 10; n++)
{
VecDetails ve = new VecDetails();
ve.stockID = "Stock ID " + (n + 1).ToString();
ve.basePrice = "Base Price " + (n + 1).ToString();
lstMasterDetails.Add(ve);
}
}
comboBox1_SelectedIndexChanged
事件我得到所选项目的价值
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
string strStockId = comboBox1.Text.ToString();
string strBasePrice = (comboBox1.SelectedItem as dynamic).basePrice;
label1.Text = strStockId + " - " + strBasePrice;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}