4

C# 3.5 では、ComboBox を使用して LinQ クエリの結果を表示します。LinQ クエリが匿名型を返す場合、ComboBox の SelectedItem プロパティを設定するにはどうすればよいですか?

次の行に沿って ComboBox の DataSource を設定します。

comboBox1.DataSource = from p in db.products
                       select p;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ProductId";

これを行うと、次のような方法で選択したアイテムを選択できます。

comboBox1.SelectedItem = (from p in db.products 
                          where p.ProductId = 5 
                          select p).First();

問題は、次のような匿名型の結果で ComboBox を埋めたいことです。

comboBox1.DataSource = from p in db.products
                       select new
                       {
                           p.ProductId,
                           p.Name
                       };

私が実際に使用している匿名型はそれよりも複雑ですが、説明には十分です。

4

2 に答える 2