如何刷新ListBox的项目?

The*_*lar 3 c# listbox winforms

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

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

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

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

Gre*_*mar 8

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

    void BindData()
    {
        listBox.DataSource = null;
        listBox.DataSource = base_items;
        listbox.DisplayMember = "Name";
    }
Run Code Online (Sandbox Code Playgroud)

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

    base_items.Add(new Base_Item("Unnamed"));
    BindData();
Run Code Online (Sandbox Code Playgroud)


Kha*_*han 7

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

C#强制ListBox更新元素

如果您知道列表需要刷新,则只需更新DisplayMember列表框.

listbox.DisplayMember = "";
listbox.DisplayMember = "Name";
Run Code Online (Sandbox Code Playgroud)