首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c#中的列表框刷新()

c#中的列表框刷新()
EN

Stack Overflow用户
提问于 2011-02-28 06:18:50
回答 10查看 64.4K关注 0票数 9
代码语言:javascript
运行
复制
int[] arr = int[100];
listBox1.DataSource = arr;
void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
{
    .....//some processes
    listBox1.DataSource = null;
    listBox1.DataSource = arr;
}

is not working,

另外,

代码语言:javascript
运行
复制
listBox1.Refresh(); is not working,

另外,

代码语言:javascript
运行
复制
listBox1.Update(); is not working,

我知道我可以使用BindingList<T>,但我只能使用数组。

你能帮我怎么刷新列表框吗?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-02-28 06:20:02

请尝试以下操作

代码语言:javascript
运行
复制
listBox1.DataBind()
票数 0
EN

Stack Overflow用户

发布于 2013-08-23 21:52:47

这里是我关于堆栈交换的第一个答案。

C# .Net 4.0:

代码语言:javascript
运行
复制
listBox1.DataSource = null;
listBox1.DataSource = names;

我注意到,第一次设置数据源时,它会刷新。当它被设置时,当你再次尝试将它设置为相同的值时,它不会更新。

因此我将其设为空,将其设置为相同的值,并在出现此问题时为我正确显示。

票数 17
EN

Stack Overflow用户

发布于 2014-07-04 07: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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5136418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档