我正在使用Entity Framework类对我的数据库进行更改,如下所示:
testEntities.Products.AddObject(产品);
我有一个ListBox绑定到testEntities.Products并且它正确显示它们,但是当我添加一个新对象并保存更改(testEntities.SaveChanges())时,产品出现在数据库中,但是ListBox没有更新。
我真的希望来自EF的那些对象集合是“可观察的”。有没有一种简单的方法来实现这一目标?
非常感谢!
(我正在使用VS.NET 2010)
答案 0 :(得分:0)
只需一步之遥。尽量不要使用声明性DataSource,而是使用查询。
在这种情况下,您可以更好地灵活地控制数据绑定过程。这是一个小样本:
private void Form1_Load (object sender, EventArgs e) {
listBox1.DataSource = context.MASTER.Select(m => m.DATA);
}
private void button1_Click (object sender, EventArgs e) {
context.AddToMASTER(new MASTER
{
ID = 5,
DATA = "5"
});
context.SaveChanges();
listBox1.DataSource = context.MASTER.Select(m => m.DATA);
}
您还可以将查询代码放入单独的RefreshList方法中,并在需要刷新代码中的列表时调用此方法。如果你有一组这些列表框和其他数据绑定控件,这也很方便。