c# - 从 ComboBox BindingSource 获取对象
问题描述
我正在使用 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()); } }
推荐阅读
- java - turnRight 方法在组合锁程序中不起作用 - java
- c# - 从控制台应用程序创建/更新数据库模式
- javascript - jQuery.html() 函数不保留动态 DOM 中的选择和输入中的值
- python - 正则表达式 python - 仅当换行符后跟数字或特殊字符和空格时才匹配换行符
- swift - Swift IBDesignable UIButton 类 - 在 didRotate 上更改宽度
- python - 使用 SetParent win32gui 函数将 ffplay 窗口嵌入到 tkinter 框架中
- javascript - 点击事件在我的地图功能中不起作用
- haskell - 无特定原因的稳定名称更改
- javascript - 导航到新页面时,如何使我的拨动开关保持在当前位置?
- php - 用php编辑复选框中的先前记录