我使用LINQ to SQL类,其构造函数之前(在表添加到它,它的工作原理)初始化:数据源不更新,只与LINQ
DataClasses1DataContext dc = new DataClasses1DataContext();
然后,我有一个列表框:
listBox1.DataSource = dc.MyTable;
listBox1.DisplayMember = "Name";
listBox1.ValueMember = "PersonID";
然后我想添加一个新的纪录:
MyTable mt = new MyTable();
mt.Name = "John Smith";
mt.PersonID = 30;
dc.MyTable.InsertOnSubmit(mt);
dc.SubmitChanges();
我想刷新列表框的数据源,这样做:
listBox1.DataSource = dc.MyTable;
...但新记录没有显示。 不过,如果我更新这样的数据源:
var q = from x in dc.MyTable select x;
listBox1.DataSource = q;
这工作。
我唯一的问题是:为什么?我看到有些人将DataSource设置为null,然后回到表格,但这并不能解决我的问题。
(这是一个WinForms项目)
listBox1.DataSource = dc.MyTable.ToList()似乎解决了问题,由作者Ehsan萨贾德在评论中回答。
WinForms或WPF? – StepUp
添加了一个编辑,它是一个Winforms项目 – hungariandude
你有没有尝试过:''listBox1.DataSource = dc.MyTable.ToList()''? –