【发布时间】:2014-11-01 14:53:56
【问题描述】:
一开始我使用的是 Sql Server Local DB 和 Linq to Sql。我有两个表格 Form1 和 Form2。 Form1 中有一个组合框,我想在每次显示时对其进行更新。 Form2 插入新记录,Form1 用于搜索记录。当我回到Form1时插入一条记录后。它不会更新列表。 我尝试了 Form1 的 Shown 和 Activated 以及 Form2 的 onClosing 事件,但没有成功。 我也尝试了组合框的 Enter 事件。尽管数据库已更新,但组合框未更新。 这就是我更新组合框的方式
_Namelist.Clear();
_Namelist.Add("Select a Name");
_Namelist.AddRange((from p in context.Peoples
select p.Name).ToList());
comboBox1.DataSource = _Namelist;
我创建了一个单独的class 以使我的主要表单 FORM1 成为单例。 为了显示 Form1,我使用了这个
FormProvider.Form_1.Show();
在这种情况下,我如何更新我的组合框?
Update_1
如果我尝试(在 Form1 中)搜索(在 Form2 中)我插入的新数据,那么它会完美地找到记录,而不是更新组合框。
Update_2
我刚刚创建了一个新班级
public class Database
{
static DataContext context;
public static List<string> getNames()
{
context = new DataContext();
List<string> _names = new List<string>();
_names.Add("Select a Name");
_names.AddRange((from p in context.People
select p.Name).ToList());
return _names;
}
}
在 Form1 的任何事件调用中调用此函数都可以完成工作。谁能告诉我为什么它在我上面的问题中描述的场景中不起作用?
【问题讨论】:
标签: c# winforms linq-to-sql combobox