如何刷新ListBox的项目?

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

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

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

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

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

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

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

  base_items.Add(new Base_Item("Unnamed")); BindData(); 

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

C#强制ListBox更新元素

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

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