我想使用实体框架在wpf中的组合框中显示所选项目的详细信息。但是我的代码只显示数据库中的第一个条目,无论选择哪个项目。
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
using (Entities c = new Entities())
{
string sFirst = c.UserProfiles.FirstOrDefault().First.ToString();
string sLast = c.UserProfiles.FirstOrDefault().Last.ToString();
txtFirst.Text = sFirst;
txtSecond.Text = sLast;
}
}
答案 0 :(得分:0)
您没有过滤数据库中的数据...没有where
子句指定所选项目。我不知道您的数据结构,但尝试这样的事情:
using (Entities c = new Entities())
{
string sFirst = c.UserProfiles.Where(u => u.Id == selectedItemId).First().First.ToString();
string sLast = c.UserProfiles.Where(u => u.Id == selectedItemId).First().Last.ToString();
txtFirst.Text = sFirst;
txtSecond.Text = sLast;
}
此外,如果您不打算检查结果是否为FirstOrDefault()
,则使用null
是没有意义的。
答案 1 :(得分:0)
我认为你正在混淆东西。
我相信你真正想要的是combox中的项目。 试试这段代码:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var comboBox = sender as ComboBox;
if (comboBox != null)
{
var item = comboBox.SelectedItem as EntityType;
//EntityType == the table you are loading into combobox (I guess it supposed to be UserProfile)
if (item != null)
{
txtFirst.Text = item.First.ToString();
txtSecond.Text = item.Last.ToString();
}
}
}