如何从 C# windows Form Application 中的 ComboBox 获取 Id
Posted
技术标签:
【中文标题】如何从 C# windows Form Application 中的 ComboBox 获取 Id【英文标题】:How to get Id from ComboBox in C# windows Form Application 【发布时间】:2016-11-21 19:54:09 【问题描述】:我有一个ComboBox
这样填写:
List<Category> CategList = new Category().getAllCategory();
foreach (Category cat in CategList)
ComboForCategory.Items.Add(cat.CategoryName);
ComboBox
成功显示所有CategoryName
详细信息...现在我需要从选定的Name
中获取CategoryID
...
然后我曾经像这样得到CategoryID
:
Item ob = new Item();
ob.category.CategoryId = ComboForCategory.SelectedValue.ToString();
但它显示错误。为什么?如何从选定的Name
中获取CategoryID
?
【问题讨论】:
【参考方案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())。
【讨论】:
您说这是针对 Windows 窗体应用程序的,但这个答案是针对 Web 窗体应用程序的。请指定哪个。 我在 Windows 窗体应用程序中对此进行了测试,它运行良好。如果您有错误,则有其他原因导致错误。您可以发布您遇到的错误的屏幕截图吗? 我刚刚注意到您在“c# 2.0”下标记了您的问题,这个答案是使用 .Net Framework 4 完成的。 它是使用框架 4.5 完成的,所以这可能是它不适合你的原因。【参考方案2】:使用隐藏 ID 从数据库中设置 comboBox
中的值
var collection = dbContext.Category;
comboBox1.DisplayMember = "Column-Name";
comboBox1.ValueMember = "ID";
comboBox1.DataSource = collection;
要在comboBox
中设置 id 值,只需编写
comboBox.SelectedValue = "Id";
【讨论】:
【参考方案3】:复制粘贴
model.CategoryID = Guid.Parse(comboBox1.SelectedValue.ToString());
【讨论】:
以上是关于如何从 C# windows Form Application 中的 ComboBox 获取 Id的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows Form C# 中使用 Binance API [关闭]