如何解决List集合类数据源变更UI不能自动刷新的问题
来源:互联网 发布:淘宝学生春秋外套 编辑:程序博客网 时间:2024/04/30 07:15
问题描述:Winfrom中某些控件(下面以ListBox为例)绑定List<T>数据源,第一次绑定上去之后,后面更改List<T>集合数据以后,ListBox并没有自动更新到UI上面。可能大家已经知道,如果 ListBox的数据源是 DataTable 则是可以自动更新的。需要注意的是,使用List<T>作为DataSource “刷新”数据的时候,如果重新指定DataSource的引用与原来的引用是同一个,那么控件是不会重新读取数据进行刷新的。这一点很重要,因此只能重新设定DataSource时才有效,判断是否重新设定了DataSource,可以在其后读取DisplayMember或者ValueMember属性,它们会被置为空串,这意味着你需要再重新设定DisplayMember属性和ValueMember属性。
传统方案:先将绑定数据源的操作提取到一个绑定方法当中,在窗口Load的时候总是先设置DataSource = null, 再调用绑定方法重新指定DataSource实现刷新。这样做在大多数时候是可以解决问题的。但可能会因为没有强化判断是否为null,在某些操作中就可能会出现意料之外的问题。下面是推荐的两种解决方案。
解决方案:推荐使用.NET 2.0里新增的 BindingSource 或者 BindingList<T> 泛型类 来实施绑定,这样就可以实现“双向绑定”来解决这个问题。
一、BindingList<T> 泛型类 其中BindingList<T>的用法与List<T>基本一样,不再赘述。
二、BindingSource
- 如何解决List集合类数据源变更UI不能自动刷新的问题
- 解决win10桌面不能自动刷新问题
- 如何解决ASP.NET中Image控件不能自动刷新
- kendo UI Window 解决在页面打开或刷新时自动打开的问题
- 解决浏览器图片缓存,上传图片不能自动刷新的问题
- 解决VFP中表格控件Grid的数据源刷新问题
- 解决Button自动刷新页面的问题
- 解决ubuntu能连网但不能更新数据源的问题
- 解决Myeclipse不能自动编译的问题
- NGUI动画/UI解决刷新显示错误的问题
- 如何解决eWebEditor在线编辑器的远程自动上传功能不能使用的问题?
- 解决showModalDialog弹出的子窗口不能刷新的问题
- list集合不能添加基本数据类型的问题
- vc++6.0中如何解决不能自动列出成员的问题
- ubuntu系统如何解决电脑重启后不能自动连接wifi的问题
- 解决IE下某些页面不能刷新显示的问题
- 快照库MV不能成功刷新问题的解决
- 关于jQuery UI样式不能应用问题的解决
- 全球软件开发语言排行榜 2010年6月 (Lua强劲上升,C#首次进入第4名逼近C++)
- 爱情的尽头还是爱情
- PHP连接MySQL报错:Fatal error: Call to undefined function mysql_connect()之解决方法
- (转)基本光照模型公式
- 科创之股票数据挖掘(6)
- 如何解决List集合类数据源变更UI不能自动刷新的问题
- CSDN 这网站感觉还行
- __declspec(dllexport)/__declspec(dllimport)
- 读书中的无奈
- Java接口和抽象Java类
- .NET 下的文件夹监测系统
- 提防社交网站LBS服务的安全隐患
- 描述ADO .NET命令影响数据源说明
- Android APK文件拆解方法