在这种情况下,我们可以使用ComboBox的ValueMember和DisplayMember属性来解决问题。ValueMember属性指定了从ComboBox获取的值的属性名称,DisplayMember属性指定了要显示在ComboBox中的属性名称。
以下是一个示例代码:
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
}
public partial class Form1 : Form
{
private List- items;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 创建一个绑定的集合
items = new List
-
{
new Item { Id = 1, Name = "Item 1" },
new Item { Id = 2, Name = "Item 2" },
new Item { Id = 3, Name = "Item 3" }
};
// 设置ComboBox的ValueMember和DisplayMember属性
comboBox1.ValueMember = "Id";
comboBox1.DisplayMember = "Name";
// 绑定数据源
comboBox1.DataSource = items;
}
private void button1_Click(object sender, EventArgs e)
{
// 从ComboBox获取选中的项
if (comboBox1.SelectedItem != null)
{
Item selectedItem = (Item)comboBox1.SelectedItem;
int selectedId = selectedItem.Id;
MessageBox.Show("选中的Id为:" + selectedId);
}
}
}
在上面的示例中,我们创建了一个名为Item的类,它具有一个整数属性Id和一个字符串属性Name。然后,在Form1的Load事件中,我们创建了一个包含三个Item对象的绑定集合。我们将ComboBox的ValueMember属性设置为"Id",将DisplayMember属性设置为"Name",然后将数据源设置为items列表。
当点击button1按钮时,我们可以通过comboBox1.SelectedItem属性获取选中的项,然后将其转换为Item对象,并从中获取Id属性的值。最后,我们显示选中的Id值。