2016-11-21 63 views
0

获得标识我有一个ComboBox充满这样:如何从组合框在C#Windows窗体应用程序

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()方法是没有必要的)。

+0

不,它显示错误 – RifathMohamed

+0

您说过这是针对Windows窗体应用程序的,但此答案适用于Web窗体应用程序。请说明哪个。 – dviljoen

+0

我在Windows窗体应用程序中测试了它,它工作得很好。如果你有错误,还有其他的东西会导致它们。你能发布你获得的错误的截图吗? –

相关问题