C# winform ComboBox绑定数据源时触发SelectedIndexChanged事件的处理
来源:互联网 发布:在vb中val是什么意思 编辑:程序博客网 时间:2024/04/30 07:42
ComboBox二级联动时,发现一个问题。如下
cboWard绑定完后,会自动触发一遍SelectedIndexChanged事件,此时cboWard.SelectedValue是
注意:
var wardList = (from ward in alarmInfoList select 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 alarmInfoList where 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一定要放到增加委托后面,否则联动失败。
如有什么问题,或者更好的方式,希望大家指正!
0 0
- C# winform ComboBox绑定数据源时触发SelectedIndexChanged事件的处理
- ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法
- ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法
- ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法
- ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法
- WINCE中ComboBox绑定数据源时触发SelectedIndexChanged事件的处理
- ComboBox绑定到某个数据源的过程中,触发SelectedIndexChanged 事件
- ComboBox使用BindingSource做数据源,更改数据源及绑定项时是否会触发SelectedIndexChanged事件?
- 解决 ComboBox数据绑定的时候也触发SelectedIndexChanged
- comboBox绑定数据库后SelectedIndexChanged事件出错
- 关于ComboBox的SelectedIndexChanged事件
- ComboBox的SelectedIndexChanged事件设置
- C#中Combobox控件的SelectedIndexChanged事件的执行顺序
- C#中ComboBox的SelectedIndexChanged事件获取Tag值
- 绑定数据源时组合框ComboBox.DrawItem的事件处理方法
- c# combobox绑定数据源
- winform combobox控件数据源绑定
- winform 关于comboBox控件的SelectedIndexChanged
- java Object
- 单链表的逆转问题
- FLAG_NEEDS_MENU_KEY cannot be resolved or is not a field 报错,程序无法运行
- Codevs 1337 银行里的迷宫
- 浅谈栈帧
- C# winform ComboBox绑定数据源时触发SelectedIndexChanged事件的处理
- 剑指offer(四十九)之二叉树中和为某一值的路径
- Codevs 1065 01字符串
- protobuf vs2015编译
- MongoDB简介
- c语言中如何判断文件是否存在
- C语言函数的应用
- android仿IOS底部弹对话框
- 【Android】Intent介绍和使用