解决ComboBox控件“设置 DataSource 属性后无法修改项集合”问题

在创建Winform程序时,遇到ComboBox控件在设置DataSource后抛出'设置 DataSource 属性后无法修改项集合'的错误。通过在清除Items前将DataSource设为null成功解决。代码示例展示了如何在数据绑定前后正确操作ComboBox。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近日尝试编写Winform程序,却遇到comboBox的绑定事件和索引项变更事件的冲突问题,就是“设置 DataSource 属性后无法修改项集合”的错误问题,网上查了很多,大多说在索引项变更是进行非空判断,还有个老兄自己加了个绑定成功状态来辅助判断,但是我照做了发现还是不行,后来遇到一位老兄帮我解决了问题。

问题描述:

  我想实现多个下拉列表联动的功能,例如有三个下拉列表A、B、C,当选择了下拉列表A中的数据后,下拉列表B中的数据发生相应的变化,选择下拉列表的B时下拉列表C的数据发生相应的变化。当然是采用ComboBox的DataSource属性绑定数据啦。结果当我选择下拉列表A的时候,系统抛出异常“设置 DataSource 属性后无法修改项集合”。

  解决问题:

  于是苦思冥想,上网查找资料,结果都没有满意的答案。最后还是查看帮助手册,也没有明确的答案。但是我从手册上看到这样一句话“实现 IList 接口的对象,如 DataSet 或 Array。默认为空引用(在 Visual Basic 中为 Nothing)。 ”,请注意我标红的那句话。灵感突现,再清除下拉列表项的时候首先将ComboBox.DataSource付空值“null”,问题果然就迎刃而解了。红色字体中数据源付空值一定要在清除项目之前进行

代码实例如下:

 protected void BindArea(ComboBox combo_Area,int parentID)
        {
            if (combo_Area.Ite

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值