首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当基础集合的计数==为0时,BindingSource被挂起

当基础集合的计数==为0时,BindingSource被挂起
EN

Stack Overflow用户
提问于 2011-03-29 05:22:11
回答 2查看 1.2K关注 0票数 0

我遇到了BindingSource的奇怪行为。首先,我将其在设计器中的DataSource设置为UI将用于绑定的类型,但是当我随后检索数据时,我将DataSource设置为此类型的集合。当Collection实际存储一些对象时,一切工作正常。当它为空(不是null,只是空)时,问题就开始了。BindingSource将被挂起,即使向集合中添加某些内容也不会改变它,ResumeBinding也不起作用。在这种状态下,它是完全无用的。

我发现了一个解决方法,简单地将DataSource设置为null,然后设置为相同的集合,但这一次添加了元素(没有设置为null就不起作用)。有人能给我解释一下吗?为什么BindingSource会有这种行为?当然,有没有一个优雅的方法来解决这个问题呢?我不喜欢我找到的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-29 05:33:22

Collection<T>不支持列表通知,因此它无法通知UI更新或执行任何有用的操作。改为BindingList<T>而不是Collection<T>应该可以解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2011-07-02 06:30:15

通过使用以下代码添加新项,我已经解决了这个问题:

代码语言:javascript
复制
myBindingsurce.Add(myObject);

而不是

代码语言:javascript
复制
myCollectoin.Add(myObject);

当数据源(我使用的是List类)为空时,我也遇到了同样的问题。IsBindingSuspended设置为true...

希望这对你有帮助。

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

https://stackoverflow.com/questions/5465224

复制
相关文章

相似问题

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