问题描述
- C# DataGridView绑定数据源后ComboBoxCell的Items下拉列表为什么会被清空
- 我有一列DataGridViewComboBoxColumn,每个cell的下拉列表内容不同,于是循环
for(int i = 0 i < max i++) { dgv.Rows.Add(new DataGridViewRow()); DataGridViewComboBoxCell cell = dgv.Rows[i].Cells[1] as DataGridViewComboBoxCell; //第二列 //comboCol.Items.AddRange(list[i].toArray()); //comboCol 第二列名 cell.Items.AddRange(list[i].toArray()); }
然后给DataGridView绑定数据源
dgv.DataSource = new BindingList<object>(objList); dgv.Columns[0].DataPropertyName = ""col1""; dgv.Columns[1].DataPropertyName = ""col2"";
在绑定这三行代码的前后分别检查第二列某行cell的Items.Count发现绑定前有长度,但是绑定后长度为0,也就是给这些cell添加的下拉项都清空了!绑定后再次添加项也没用,还是会清空。
另外在循环里如果用注释掉的那行代码,也就是给整列添加项,那就没有问题,但是就不能满足我每个cell下拉内容不同这个需求。
又试了试发现如果不绑定,直接给cell赋值,cell.Value = ""v1""这样的话也不会有问题,但我需要绑定。
实在没有头绪,不知道怎么回事。
解决方案
由于控件刷新后,清空了数据。
时间: 2024-08-03 04:30:22