我似乎误解了 ListBox.Refresh() 方法,我希望有人能帮助我。
我正在尝试做的事情:
我想在 Windows 窗体初始化时加载列表框的数据(源 = sql 数据库的表)。此外,当用户将数据添加到数据库时,我希望更新列表框。
逻辑:
我有一个 sql 数据库作为我的源,它设置为:
listBoxDays.DataSource = DBQuery.informationRetreval().DefaultView;
DBquery.informationRetreval() 是我的 DBQuery 静态类中的静态方法。它所做的只是从数据库中建立一个表,然后返回该表。
我在与 initializeComponent 相同的方法中设置数据源(因此我的列表框将加载现有数据):
public Settings()
{
InitializeComponent();
listBoxDays.DataSource = DBQuery.informationRetreval().DefaultView;
}
当用户添加更多数据时:我调用一个将数据添加到数据库的方法,然后调用:
listBoxDays.Refresh(); //update listbox
问题:这不会更新列表框。初始化我的列表框后,数据将填充,但之后不会更改(因此刷新不起作用)。这是为什么?我可以再次设置 DataSource,但这感觉很草率。在查看了一些文档后,我注意到事件处理程序 DataSourceChanged 可能更适合我正在寻找的内容。尽管如此,为什么不刷新工作?
感谢您的耐心等待。如果我需要更清楚,请告诉我。