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
};
私が実際に使用している匿名型はそれよりも複雑ですが、説明には十分です。