1
在我的C#winform项目中,我使用了几个用户控件。 这包含两个选项,这样动态更新usercontrol
Home > Person > Addperson
Home > Teacher > AddTeacher
人员和教师含有从数据库中显示所有的人/教师列表框。 当我添加使用添加人,数据输入成功。但是当我回到人它没有显示任何东西。同时如果我回到家里并进入AddTeacher选项,在这里从下拉列表中我可以找到新添加的数据。
现在,如果我将该人员添加为教师并返回教师,它将不显示任何内容,但实际插入的数据不会成功。然后,如果我关闭整个程序并重新打开,而不是所有内容都正确显示。
我只想刷新那些usercontrol以便每次发生任何更改时都会立即显示该更改,而不会关闭整个程序。
我尝试过不同的方法,但没有一个能起作用。我试过刷新方法。在实际数据源声明之前,还尝试使用 和datasource=null
。
代码列表框的人:
var personListDictionary = new Dictionary<int, string>();
SqlCommand prsonListCmd = new SqlCommand("SQL QUERY", Connection);
SqlDataReader dr = prsonListCmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
...
personListDictionary.Add(Key, Value);
}
}
PersonList.DisplayMember = "Value";
PersonList.ValueMember = "Key";
PersonList.DataSource = new BindingSource(personListDictionary, null);
那么你必须以某种方式通知该人或教师用户控件他们必须刷新。一种方法是在AddPerson和AddTeacher用户控件中引发OnEntityAdded或类似内容,并在Person或Teacher中处理它。 – sventevit
@sventevit我不知道你想说什么。请解释更多。有什么具体的方法来做这种刷新吗? – Nabil