编写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.Items.Count > 0)
            {
                combo_Area.DataSource = null;
                combo_Area.Items.Clear();
            }
            DataRow[] dList = areaList.Select("ParentID = " + parentID.ToString());
            if (dList.Length>0)
            {
                ArrayList da = new ArrayList();
                foreach (DataRow dr in dList)
                {
                    SysDic dic = new SysDic(dr);
                    da.Add(dic);
                }
                combo_Area.DisplayMember = "DicName";
                combo_Area.ValueMember = "DicID";
                combo_Area.DataSource = da;
            }
        }

最新文章

  1. egret3D与2D混合开发,画布尺寸不一致的问题
  2. oracleDBA-D4
  3. JFreechart 在linux下不显示及中文乱码问题
  4. 20145320 《Java程序设计》第七周学习总结
  5. gcc学习笔记
  6. linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装
  7. Hibernate 的saveOrUpdate方法(转)
  8. Python学习教程(learning Python)--1.4 Python数据处理基础
  9. 为Eclipse/MyEclipse添加JDK API Document帮助文档
  10. php-工厂模式(转)
  11. Oracle中创建视图
  12. 如何删除textarea的移动版Safari的阴影?
  13. JQ插件开发方法
  14. uva 10763 Foreign Exchange(排序比较)
  15. bzoj1041题解
  16. 初学 Java Web 开发,从 Servlet 开发
  17. 在 .NET Framework 4.0 的程序中使用 .NET Framework 2.0 的程序集
  18. python初步学习-import和datetime模块
  19. NDK官方下载链接
  20. adb学习笔记

热门文章

  1. Python的subprocess子进程和管道进行交互
  2. 性能测试之Jmeter学习(十)
  3. SQL中的drop,truncate和delete的区别
  4. Sharepoint2013搜索学习笔记之设置sharepoint网站内容源(五)
  5. vim配置----YouCompleteMe配置
  6. Light Pre-Pass 渲染器----为多光源设计一个渲染器
  7. 2014-8-5 NOIP(雾)模拟赛
  8. mysql-5.5.56免安装版配置方法
  9. maven分层架构搭建
  10. C 语言实例 - 阶乘