如何刷新ListBox中的项目?

3

可能是重复问题:
C# 强制 ListBox 更新元素

让我们考虑这段小代码:

listbox.DataSource = base_items;
listbox.DisplayMember = "Name";
// ... a bit later in the program
base_items.Add(  new Base_Item("Unnamed")  );

从这个点开始,我该怎么做才能使列表框更新其项目?我唯一能看到更新的方法是关闭窗口并重新加载它。

注:该段文字已被翻译为中文,并保留了HTML标签。
2个回答

8

只需移除并重新添加数据绑定。 您可以创建一个方法,在第一次加载和添加新项时使用:

    void BindData()
    {
        listBox.DataSource = null;
        listBox.DataSource = base_items;
        listbox.DisplayMember = "Name";
    }

所以这里是添加新项并刷新列表框的代码:
    base_items.Add(new Base_Item("Unnamed"));
    BindData();

非常感谢,它有效了 :D 我应该考虑将其设置为 null... - TheScholar

8

如Marc G的回答所述。

C# 强制 ListBox 更新元素

如果您知道列表需要刷新,只需更新listbox的DisplayMember即可。

listbox.DisplayMember = "";
listbox.DisplayMember = "Name";

1
哇,这是一个奇怪的方法,但是很有效。 - TheScholar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接