2012-03-22 11 views
0

私はlinqを作成しました。結果は私にitemtypesのリストを与え、リストをコンボボックスにバインドしようとしましたが、私は、最初のコンボボックスのためにDisplayMemberとValueMemberでを設定し、負荷のイベントは返さない、と決してフォームロードイベントで1つのComboboxデータバインディングしか処理できません

private void AddOpenOrderForm_Load(object sender, EventArgs e) 
{ 
    using (context = new MRP_DBEntities()) 
    { 

     var query1 = (from i in context.LookUPs select i.itemType).Distinct(); 
     itemType1CB.DataSource = query1.ToList(); 
     itemType1CB.DisplayMember = "itemType"; 
     itemType1CB.ValueMember = "itemType"; 

     MessageBox.Show("The program will not reach the follow codes"); 

     itemType2CB.DataSource = query1.ToList(); 
     itemType2CB.DisplayMember = "itemType"; 
     itemType2CB.ValueMember = "itemType"; 
     } 


} 
+0

ない例外を?出力に何もない?あなたはデバッガを使いこなすことができますか? –

答えて

2

私の推測では、あなたがあなただけだ例外を取得しているということであるコードの残りの部分を実行しているようです見ていない。あなたは既にここitemTypeメンバーを選択している:

var query1 = (from i in context.LookUPs select i.itemType).Distinct(); 

...しかし、あなたはここで、各値のitemTypeメンバーを見つけるためにしようとしている:ちょうど

itemType1CB.DisplayMember = "itemType"; 
itemType1CB.ValueMember = "itemType"; 

私はあなたを疑うしなければなりませんDisplayMemberValueMember""のままにして、オブジェクト自体を表示するようにしてください。

私もお勧めし一度ToListを呼び出し、そしてそれは本当に混乱減らすいないクエリ式を使用していない:

var list = context.LookUPs.Select(i => i.itemType).Distinct().ToList(); 
itemType1CB.DataSource = list; 
itemType2CB.DataSource = list; 

// Unless you've set the display/value members elsewhere, they'll default to "" 
+0

はい、それは動作しますが、itemType1CB.DisplayMember = "itemType"を取り除く必要があります。 itemType1CB.ValueMember = "itemType";私はitemTypeを選択するだけです – user1286824

+0

提案ありがとうございました – user1286824

+0

@ user1286824:はい、まさに私が言っていることです。 –

関連する問題