【发布时间】:2016-08-18 16:55:20
【问题描述】:
我正在使用一个 LINQ To SQL 类,它在构造函数之前被初始化(表被添加到它,它可以工作):
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,然后返回 table,但这并没有解决我的问题。
(这是一个winforms项目)
listBox1.DataSource = dc.MyTable.ToList() 似乎解决了这个问题,由 cmets 中的 Ehsan Sajjad 回答。
【问题讨论】:
-
添加了一个编辑,它是一个 Winforms 项目
-
你试过了吗:
listBox1.DataSource = dc.MyTable.ToList()? -
谢谢你,Ehsan,它有效!