2016-11-21 10 views
0

にコンボボックスからIDを取得するにはどうすればComboBoxいっぱいこうして持っている:すべてのCategoryName詳細が正常に...今私が選択したNameからCategoryIDを取得する必要がありは、C#Windowsフォームアプリケーション

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

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

ComboBoxディスプレイを.. 。

それから私はこのようなCategoryIDを取得するために使用:

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

しかし、それはエラーを示しています。どうして?どのようにCategoryIDを選択から取得するName

答えて

1

コードの後ろにValueMemberプロパティを指定する必要があります。 DisplayMemberを使用して、表示するオブジェクトのプロパティを指定することができます。

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

(toString()を使用することは必要ありません):あなたはSelectedValueのをつかむしたいとき

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

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

次に、あなたがこのようにそれを呼び出すことができます。

+0

いいえ、それはエラーを表示しています – RifathMohamed

+0

これはWindowsフォームアプリケーション用ですが、この答えはWebフォームアプリケーション用です。どちらを指定してください。 – dviljoen

+0

これをWindowsフォームアプリケーションでテストしたところ、うまくいきました。あなたにエラーがある場合は、それを引き起こす何かがあります。あなたが行っているエラーのスクリーンショットを投稿できますか? –

関連する問題