这个问题可能听起来微不足道,但无论如何我都会问它。根据下面的代码,强制ListBox
反映新表格内容的正确方法是什么。
SQLDataContext dataContext = new SQLDataContext();
BindingDataSource myBindingDataSource = dataContext.MyTable1;
listBox1.DataSource = myBindingDataSource;
listBox1.DispalyMember = "Column1";
listBox.ValueMember = "Column2";
MyTable1 newRecord = new MyTable1();
newRecord.Column1 = "Some data";
newRecord.Column2 = 123;
dataContext.MyTable1.InsertOnSubmit(newRecord);
dataContext.SubmitChanges();
如果您愿意,最有效的方式或最佳做法是强制listBox1
反映dataContext
更改?
答案 0 :(得分:1)
请不要生气,但这是滥用收藏品的典型例子。你正在使用2个并行的集合,你不能指望一个人能够很好地了解彼此正常链接的单个集合。由于您要listBox1
绑定到BindingDataSource
,因此您应该对同一BindingDataSource
执行添加,删除和更新操作。它绑定两种方式。您添加,更新或删除的所有内容都将反映在绑定控件和上下文中。只需提交上下文更改,您就会更新数据库。在您的示例中,您绕过BindingDataSource
并直接写入上下文,以便`BindingDataSource'我不知道这种变化。