C#如何显示comboBox值而不是显示对象名称

Bin*_*Tie 3 c# foreach combobox list winforms

大约3个小时,我正在尝试解决此问题。我的组合框向我显示对象名称而不是一个值,例如:A 在此处输入图片说明

这是我的课:

namespace Supermarket
{
    public class WhareHouseTable
    {
        public string name { get; set; }
        public double cost { get; set; }
        public string offer { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

private void Form1_Load(object sender, EventArgs e)
        {
            List<WhareHouseTable> product = new List<WhareHouseTable>();
            product.Add(new WhareHouseTable { name = "A", cost = 0.63, offer = "Buy 2 for the price of 1" });
            product.Add(new WhareHouseTable { name = "B", cost = 0.20 });
            product.Add(new WhareHouseTable { name = "C", cost = 0.74, offer = "Buy 2; get B half price" });
            product.Add(new WhareHouseTable { name = "D", cost = 0.11 });
            product.Add(new WhareHouseTable { name = "E", cost = 0.50, offer = "Buy 3 for the price of 2" });
            product.Add(new WhareHouseTable { name = "F", cost = 0.40 });

            comboBox2.DataSource = product;
            comboBox2.DropDownStyle = ComboBoxStyle.DropDownList;

            source.DataSource = product;

            foreach (var selected in product)
            {
                comboBox2.Text = selected.name;
                itemCostLabel.Text = selected.cost.ToString();
                offerLabel.Text = selected.offer;
            }

        }
Run Code Online (Sandbox Code Playgroud)

在foreach中,我试图获取所有产品,并在comboBox和标签中表示它们。在这种情况下我该怎么办?

suj*_*lil 5

您需要指定绑定源中DisplayMember要显示的属性之一,ValueMember以及可以通过其访问的相同或另一个属性。selectedItem.Value

  comboBox2.DisplayMember = "Name";
  comboBox2.ValueMember = "Name";
Run Code Online (Sandbox Code Playgroud)