2016-11-21 150 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窗體應用程序中測試了它,它工作得很好。如果你有錯誤,還有其他的東西會導致它們。你能發佈你獲得的錯誤的截圖嗎? –

相關問題