gpt4 book ai didi

c# - ListBox 已设置数据源但刷新不执行任何操作

转载 作者:太空狗 更新时间:2023-10-29 20:45:34 26 4
gpt4 key购买 nike

我似乎误解了 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

问题:这不会更新列表框。在我的列表框初始化时,数据将填充但之后不会更改(因此刷新不起作用)。这是为什么?我可以再次设置数据源,但感觉很草率。在查看了一些文档后,我注意到事件处理程序 DataSourceChanged 可能更适合我正在寻找的内容。然而,为什么刷新不起作用?

感谢您的耐心等待。如果我需要更清楚,请告诉我。

最佳答案

它只会在对象发生变化时刷新(例如,不同的查询),而不是数据。你可以这样做:

listBoxDays.DataSource = null;
listBoxDays.DataSource = DBQuery.informationRetreval().DefaultView;

刷新它......每次你需要的时候。

关于c# - ListBox 已设置数据源但刷新不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14969650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com