我使用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()''? –