3

可能重复:
C# 强制列表框更新元素

让我们考虑一下这段小代码:

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

从这一点来看,我该如何让列表框更新其项目?我看到更新的唯一方法是关闭窗口并重新加载。

4

2 回答 2

8

只需删除并再次添加数据绑定。您可以创建可在首次加载和添加新项目时使用的方法:

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

所以这里是添加新项目和刷新列表框的代码:

    base_items.Add(new Base_Item("Unnamed"));
    BindData();
于 2012-12-21T23:51:29.913 回答
8

正如 Marc G 的回答中提到的那样。

C# 强制 ListBox 更新元素

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

listbox.DisplayMember = "";
listbox.DisplayMember = "Name";
于 2012-12-21T23:54:17.297 回答