datagridview-C# DataGridView绑定数据源后ComboBoxCell的Items下拉列表为什么会被清空

问题描述

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

datagridview-C# DataGridView绑定数据源后ComboBoxCell的Items下拉列表为什么会被清空的相关文章

C# winform combox绑定数据源后,修改显示值

问题描述 如题,我有两个页面,一个winform中有一个datagridview,选中一条记录后,打开另一个窗口编辑选中记录的内容,其中一个内容是利用combox选择的,这个combox是绑定数据库中的数据源,打开窗口初始化后总是显示数据源第一项内容,怎样让他显示选中记录的内容.用的是vs2005.试过用item.text,但是显示错误是绑定数据源后不可更改item值用combox.text,显示的还是数据源第一项 解决方案 解决方案二:stringsex=dgv1.currentrow.cel

gridview后台绑定数据源后,无法获取ItemTemplate中控件的当前值

问题描述 gridview后台绑定数据源后,无法获取ItemTemplate中控件的当前值 如题,gridview的ItemTemplate中的radiobutton初始checked属性为false,当后来选中后,获取的状态仍为false,而不是true 解决方案 没人吗╮(╯▽╰)╭,求帮助啊 解决方案二: 将LoginInfoAnyoffice接口中应用程序被调用响应函数里的实现放到didFinishWithLaunchingOptions方法中来获取传递的参数. 解决方案三: 里面的控件

C# DataGridView控件绑定数据后清空数据

在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将DataGridView的列也删掉.   2.用DataGridview.Rows.Clear();  提示"不能清除此列表"!!!!!   以上都不是想要的结果.想要满足保持原有的列,就是重新绑定之前的DataTable,然后清除DataTable中的数据,如下:  代码如下 复制代码 DataTable  dt  =  (DataTab

dataGridView绑定model数据源后点击列排序

问题描述 dataGridView绑定model数据源后,查询出数据,想点击任意列都能根据点击的列重新排序,但是列上都不显示排序的小三角,我写了代码放出递增递减的小三角,但是点击了数据也不会重新排序,有什么办法解决啊 解决方案 本帖最后由 zwc00sx 于 2015-11-27 11:46:51 编辑解决方案二:看下列的SortMode是什么解决方案三:以编程方式排序:dgv.Columns[1].SortMode = DataGridViewColumnSortMode.Programmat

Winform中DataGridView绑定IList数据源后的排序的控件

Winform中DataGridView绑定IList数据源后的排序的控件 也是从网上看到的方法,我封装好了 使用方法: 使用方法: IList<Model> aaa = new List<Model>();aaa = Getr();dataGridView1.DataSource = new ZiZhuDi.IListdataGridViewSort.BindingCollection<Model>(aaa); 下载地址:http://download.csdn.ne

在删除数据库数据后如何刷新Datagridview中的数据(Datagridview与数据库绑定)

问题描述 Datagridview控件与数据源绑定后,再删除数据库中的数据后,如何能够即时显示数据库中的数据? 解决方案 解决方案二:委托,去刷新dgv数据解决方案三:引用1楼chinajiyong的回复: 委托,去刷新dgv数据 或者一般的思路重新绑定

c#datagridview绑定-C#DataGridView与DataTable绑定的问题

问题描述 C#DataGridView与DataTable绑定的问题 有两个DataGridView控件,点击DataGridView1中的数据查出的明细在DataGridView2中显示, 针对DataGridView2有两个DataTable类的对象DataA和DataB,DataA用来绑定DataGridView2,DataB是汇总DataGridView1中的所有查出的数据的明细,只是要点中才在DataGridView2显示的数据. DataGridView2中有一列数据是要更改的,改了

先谢谢了!!!双击datagridview中显示的行后,在一个新的窗口中显示带有TEXTBOX同样内容\同样数据的程序,因为我要实现修改\添加数据,这样做比较直观

问题描述 双击datagridview中显示的行后,在一个新的窗口中显示带有TEXTBOX同样内容同样数据的程序,因为我要实现修改添加数据,这样做比较直观,最好给个代码,或源程序,谢谢了 解决方案 解决方案二:怎么没有人回答呀解决方案三:在SelectedIndexChanging事件中,把该行的主键取出来,然后window.open()新页面,参数传过去接下来就好做了吧,更新完毕关闭新开的窗口并刷新原来网页解决方案四:深更半夜的人本来就不多...解决方案五:///<summary>///双击

C#winform 在DataGridView里面添加数据完成后,如何禁止他排序

问题描述 C#winform在DataGridView里面添加数据完成后,如何禁止他排序?我每次添加数据完成后,添加的这一行就会改变不再最下面了,请问高手们,如何禁止呢?谢谢 解决方案 解决方案二:默认好像不排序吧?你用了Sort?解决方案三:没有使用Sort