重新加载列表框内容(Reloading Listbox content)

2019-11-01 18:49发布

当我看到这个帖子在这里 。

然而,在我的代码,我看不出有任何DataBind()方法。

lstBox.DataBind();

如何重新加载listbox在C#.NET?

Refresh()方法也没有工作。

Answer 1:

您可以尝试使用的ObservableCollection作为的ItemSource,而全部自动完成。 你的任务是再填充的物品放入的ObservableCollection,有没有需要手动更新。



Answer 2:

的DataBind()是ASP.NET控件 - 据我所知,没有等效的方法为Windows窗体控件。 什么是您的列表框的数据源? 我记得有一个类似的问题而回,我通过我的控制绑定到BindingSource的对象,而不是无论我用解决我的问题。 同样也可以受益您将列表框绑定到BindingSource的,而不是当前的数据源。 从MSDN :

BindingSource组件提供多种用途。 首先,它通过提供货币管理,变更通知和其他业务之间的Windows窗体控件和数据源简化绑定控件的窗体上的数据。

类似方法 - 换句话说,一旦你对BindingSource的变化(如呼叫BindingSource.Add,或BindingSource的的DataSource属性设置为另一个集合),您的列表框会自动而无需调用“的DataBind()”已更新。

如果你的列表框当前绑定到一个集合对象,你可以简单地绑定您收集到BindingSource,而不是,然后绑定控件到BindingSource:

BindingSource.DataSource = ListboxItems;
ListBox.DataSource = BindingSource;

另外,您可以手动构建的BindingSource的内容:

MyBindingSource.Clear();
MyBindingSource.Add(new BusinessObject("Bill", "Clinton", 1946));
MyBindingSource.Add(new BusinessObject("George", "Bush", 1946));
MyBindingSource.Add(new BusinessObject("Barack", "Obama", 1961));

lstBox.DataSource = MyBindingSource;


文章来源: Reloading Listbox content