近日尝试编写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