如何从C#windows窗体应用程序中的ComboBox获取Id

时间:2016-11-21 19:54:10

标签: c# combobox c#-2.0

我这样填充ComboBox

List<Category> CategList = new Category().getAllCategory();

foreach (Category cat in CategList)
{            
    ComboForCategory.Items.Add(cat.CategoryName);
}

ComboBox成功显示所有CategoryName个详细信息...现在我需要从选定的CategoryID获取Name ...

然后我曾经这样得到CategoryID

Item ob = new Item();
ob.category.CategoryId = ComboForCategory.SelectedValue.ToString();

但它显示错误。为什么?如何从选定的CategoryID获取Name

3 个答案:

答案 0 :(得分:1)

在后面的代码中,您需要指定ValueMember属性。然后,您可以使用DisplayMember指定要显示的对象的哪个属性。

List<Category> CategList = new Category().getAllCategory();

ComboForCategory.DataSource = CategList;
ComboForCategory.DisplayMember = "CategoryName";
ComboForCategory.ValueMember = "CategoryId";

然后,当您想要获取SelectedValue时,您可以这样调用它:

ob.category.CategoryId = Convert.ToInt32(ComboForCategory.SelectedValue);

(不需要使用ToString())。

答案 1 :(得分:0)

从带有隐藏 ID 的数据库中设置 comboBox 中的值

var collection = dbContext.Category;

comboBox1.DisplayMember = "Column-Name";
comboBox1.ValueMember = "ID";
comboBox1.DataSource = collection;

要在 comboBox 中设置带有 id 的值,只需写入

comboBox.SelectedValue = "Id";

答案 2 :(得分:0)

只需复制粘贴

model.CategoryID = Guid.Parse(comboBox1.SelectedValue.ToString());