【发布时间】:2012-12-21 23:40:09
【问题描述】:
让我们考虑一下这段代码:
listbox.DataSource = base_items;
listbox.DisplayMember = "Name";
// ... a bit later in the program
base_items.Add( new Base_Item("Unnamed") );
从这一点来看,我该如何让列表框更新其项目?我看到更新的唯一方法是关闭窗口并重新加载。
【问题讨论】:
让我们考虑一下这段代码:
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# Force ListBox to update elements
如果您知道列表需要刷新,只需更新列表框的DisplayMember。
listbox.DisplayMember = "";
listbox.DisplayMember = "Name";
【讨论】: