int[] arr = int[100];
listBox1.DataSource = arr;
void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
{
.....//some processes
listBox1.DataSource = null;
listBox1.DataSource = arr;
}
is not working,
另外,
listBox1.Refresh(); is not working,
另外,
listBox1.Update(); is not working,
我知道我可以使用BindingList<T>
,但我只能使用数组。
你能帮我怎么刷新列表框吗?
发布于 2011-02-27 22:20:02
请尝试以下操作
listBox1.DataBind()
发布于 2013-08-23 13:52:47
这里是我关于堆栈交换的第一个答案。
C# .Net 4.0:
listBox1.DataSource = null;
listBox1.DataSource = names;
我注意到,第一次设置数据源时,它会刷新。当它被设置时,当你再次尝试将它设置为相同的值时,它不会更新。
因此我将其设为空,将其设置为相同的值,并在出现此问题时为我正确显示。
发布于 2014-07-03 23:25:24
只有当绑定在dataSource上的对象通知它自己的更改时,ListBox才会更新其显示的内容。BindingSource对象有一个名为DataSourceChanged的事件。当源被更改为不同的对象时,列表框将自动更新。绑定列表时也是如此。如果您更改列表,则不会发生任何事情,因为列表不会通知它已更改。这个问题有一个简单的解决方案:使用BindingList http://msdn.microsoft.com/de-de/library/ms132679%28v=vs.110%29.aspx
每次列表更改时(显然),BindingList都会调用ListChanged事件。因此,Windows.Form对象的DataBindings使用像ListChanged这样的事件来更新自身。简单列表不支持此事件。
所以如果你想使用大量的数据绑定,你应该知道:http://msdn.microsoft.com/de-de/library/system.componentmodel.inotifypropertychanged%28v=vs.110%29.aspx
https://stackoverflow.com/questions/5136418
复制