我这样填充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
?
答案 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());