ComboBox二级联动时,发现一个问题。如下

  var wardList = (from ward in alarmInfoListselect new{ward.AlarmJQ,ward.AlarmJQName}).Distinct();List<WardInfo> wiList = new List<WardInfo>();foreach (var ward in wardList){WardInfo wi = new WardInfo();wi.AlarmJQ = ward.AlarmJQ;wi.AlarmJQName = ward.AlarmJQName;wiList.Add(wi);}cboWard.DataSource = wiList;cboWard.ValueMember = "AlarmJQ";cboWard.DisplayMember = "AlarmJQName";
 private void cboWard_SelectedIndexChanged(object sender, EventArgs e){            var departmentList = (from department in alarmInfoListwhere department.AlarmJQ == cboWard.SelectedValue.ToString()select new{department.AlarmArea,department.AlarmAreaName}).Distinct();List<DepartmentInfo> diList = new List<DepartmentInfo>();DepartmentInfo diAll = new DepartmentInfo();diAll.AlarmArea = -1;diAll.AlarmAreaName = "全部";diList.Add(diAll);foreach (var department in departmentList){DepartmentInfo di = new DepartmentInfo();di.AlarmArea = department.AlarmArea;di.AlarmAreaName = department.AlarmAreaName;diList.Add(di);}cboDepartment.DataSource = diList;cboDepartment.DisplayMember = "AlarmAreaName";cboDepartment.ValueMember = "AlarmArea";}

cboWard绑定完后,会自动触发一遍SelectedIndexChanged事件,此时cboWard.SelectedValue是

List<WardInfo> wiList = new List<WardInfo>();

里面的WardInfo对象,而不是想要的

cboWard.ValueMember = "AlarmJQ";

value值,导致cboDepartment没有数据。

解决方式:

            List<WardInfo> wiList = new List<WardInfo>();foreach (var ward in wardList){WardInfo wi = new WardInfo();wi.AlarmJQ = ward.AlarmJQ;wi.AlarmJQName = ward.AlarmJQName;wiList.Add(wi);}//去除委托cboWard.SelectedIndexChanged -= new EventHandler(cboWard_SelectedIndexChanged);cboWard.DataSource = wiList;cboWard.ValueMember = "AlarmJQ";cboWard.SelectedIndexChanged += new EventHandler(cboWard_SelectedIndexChanged);cboWard.DisplayMember = "AlarmJQName";

注意:

            cboWard.SelectedIndexChanged += new EventHandler(cboWard_SelectedIndexChanged);cboWard.DisplayMember = "AlarmJQName";

DisplayMember一定要放到增加委托后面,否则联动失败。

如有什么问题,或者更好的方式,希望大家指正!

C# winform ComboBox绑定数据源时触发SelectedIndexChanged事件的处理相关推荐

  1. ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法

    转载:http://hi.baidu.com/haoyun2012/item/d780ca157a29b239b9318080 感谢原作者 ComboBox最经常使用的事件就是SelectedInde ...

  2. 解决winform combobox绑定数据时触发changed事件

    我们在使用comboBox组件时如果同时设置了SelectedIndexChanged事件,在绑定combobox事件时会先触发一下changed事件,怎么能在绑定时不触发,再绑定之后的用户选择触发呢 ...

  3. Winform 使用ComboBox.DataSource绑定数据会触发SelectedIndexChanged事件解决

    1.绑定数据后再添加SelectedIndexChanged事件 2.SelectedIndexChanged事件中判断是否是选择项改变触发事件 if(ComboxBox1.ContainsFocus ...

  4. (论坛答疑点滴)为什么设置了DropDownList的AutoPostBack=True还是不能触发SelectedIndexChanged事件?...

    有人问 (1)AutoPostBack="True" <asp:DropDownList id="DropDownList1" runat="s ...

  5. DropDownList 控件不能触发SelectedIndexChanged 事件的另一个原因

    相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种: 1.DropDownList 控件的属性 AutoPostBac ...

  6. DropDownList 控件不能触发SelectedIndexChanged 事件

    相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种: 1.DropDownList 控件的属性 AutoPostBac ...

  7. DropDownList控件不触发SelectedIndexChanged事件(转)

    DropDownList控件不触发SelectedIndexChanged事件(转) 相信DropDownList 控件不能触发SelectedIndexChanged 原因以下几种: 1.DropD ...

  8. GridView触发SelectedIndexChanged事件

    首先在GridView中必须加上"选择"的按钮,然后在Page_Load中添加 view plaincopy to clipboard protected void Page_Lo ...

  9. 为什么设置了DropDownList的AutoPostBack=True还是不能触发SelectedIndexChanged事件?

    有人问 (1)AutoPostBack="True" <asp:DropDownList id="DropDownList1" runat="s ...

最新文章

  1. 嵌入式系统开发过程中遇到的——volatile
  2. 线性代数:第三章 矩阵的初等变换与线性方程组(2)线性方程组的解 初等方阵
  3. 计算机算法设计与分析之----- 递归与分治策略
  4. workerman mmo_2020了,我们为什么还在做MMO端游
  5. fullyRelease
  6. ASP.net mvc Code First 更新数据库
  7. Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)
  8. 剑指offer之求二叉树中两个节点的最低共同父节点
  9. 父类、派生类、方法重写、实例化后的执行顺序
  10. python美化输出模块_python日志处理模块
  11. (二) Keras 非线性回归
  12. ubunto应用软件
  13. java.lang.NoSuchMethodError示例
  14. Acrobat Reader DC 2019 for Mac(pdf文件阅读器) 中文直装
  15. myeclipse 配置 SVN
  16. (转载)php flush()刷新不能输出缓冲的原因分析
  17. 《Python和Pygame游戏开发指南》——导读
  18. 基于JAVA自行车租借管理系统计算机毕业设计源码+系统+lw文档+部署
  19. VS2008 Pocket PC 2003 SE仿真程序上网设置
  20. 【经典算法】:银行金额大写转换

热门文章

  1. 科技支撑助推南湖“智慧环保”
  2. .rar .zip 格式压缩/解压缩命令
  3. 2022-2028年全球与中国被动声纳系统行业深度分析报告
  4. 纸黄金最佳交易时间及技巧
  5. php清除文件夹下所有文件,学习猿地-php如何删除文件夹及其文件夹下所有文件...
  6. MongoDB--Python
  7. 手把手教你使用极致cms搭建2021资源网系统
  8. 【C语言从入门到入土】——“井字棋”
  9. javatype与oftype的区别
  10. php论坛网论文交易,php4论坛代写网站