0 0

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

我有一列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"这样的话也不会有问题,但我需要绑定。
实在没有头绪,不知道怎么回事。
2014年11月26日 09:49
目前还没有答案

相关推荐

    C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新

    本教程将深入探讨在C#中,当DataGridView与数据源绑定后如何进行数据的增加、删除、插入和更新操作。 ### 数据源绑定 首先,我们需要创建一个数据源,这可以是任何实现了`IList`或`IBindingList`接口的对象,如...

    C# datagridview 绑定数据后绑定标题

    当我们谈论“C# datagridview 绑定数据后绑定标题”,这意味着我们需要将数据源与`DataGridView`关联,并自定义列头显示。 首先,让我们了解如何绑定数据到`DataGridView`。数据可以来自各种来源,例如数据库、数组...

    c# DataGridView中添加下拉列表

    如果你的下拉列表项来源于数据源,如数据库或列表,你需要先绑定数据源再添加到列中: ```csharp List&lt;string&gt; optionsList = new List&lt;string&gt; { "Option1", "Option2", "Option3" }; comboBoxColumn....

    c#DataGridView数据绑定示例 多列混合排序

    首先,`DataGridView`的数据绑定通常涉及到数据源的设置。数据源可以是数组、列表、数据库查询结果等。以下是一个简单的数据绑定示例: ```csharp DataTable dataTable = new DataTable(); // 添加数据列 dataTable...

    自定义的C#DataGridView下拉列表单元格

    在自定义类似dropdownlist类型的单元格时,按照通常的方法,在点击输入的时候显示的是正常的文本,而输入完成后单元格显示的是实际值,并不符合我们的合适习惯. 本例通过在EditingControlFormattedValue中返回combobox...

    DataGridView数据源绑定

    ### DataGridView数据源绑定详解 在.NET框架中,`DataGridView` 控件是用于显示表格数据的强大工具,它提供了丰富的功能来处理各种类型的数据。本篇将详细介绍 `DataGridView` 的数据源绑定方法及其相关操作,包括...

    C# DataGridView绑定数据源的方法

    复杂数据绑定是将一个以列表为基础的用户控件(例如:ComboBox、ListBox、ErrorProvider、DataGridView等控件)绑定至一个数据对象的列表。例如,我们可以使用BindingSource组件来绑定数据源。 ```csharp private ...

    C#WinForm中DataGridView表头下拉列表

    而"DataGridView表头下拉列表"的功能,是允许用户通过表头上的下拉列表来快速筛选或选择列的特定值,极大地提升了用户体验和数据操作的效率。这个特性特别适用于大型数据集,使得用户能够更直观、快速地定位和操作...

    dataGridView动态绑定数据下拉框

    本话题将深入探讨如何实现“dataGridView动态绑定数据下拉框”的功能,即在dataGridView的某一列展示一个动态生成的下拉框,其内容来源于数据库字段,并且能够与文件列名建立对应关系,从而实现数据的导入。...

    c#使用bindlist绑定datagridview不能自动排序的解决类

    当与`BindingList&lt;T&gt;`结合使用时,可以通过简单的代码将数据源绑定到`DataGridView`上。但是,由于`BindingList&lt;T&gt;`默认不支持自动排序,因此在进行数据排序时需要额外的处理。 #### 实现自定义SortableBindingList...

    DataGridView空间绑定数据源

    本教程将深入探讨如何将数据源绑定到`DataGridView`控件,以便在界面上展示数据。 一、数据源的类型 `DataGridView`控件可以绑定多种类型的数据源,包括但不限于: 1. 数组或集合:如ArrayList、List等。 2. 数据表...

    DataGridView手动添加数据(非数据源绑定)

    总之,这个代码展示了如何在C#的Windows Forms应用中,不依赖数据源绑定而手动向DataGridView添加数据。它利用了事件驱动编程和计时器控件来实现动态添加数据的效果。对于初学者或需要理解手动操作DataGridView数据...

    C# WinForm (DataGridViewComboBoxColumn 绑定)自己写的,最简单实例

    为了将`DataGridViewComboBoxColumn`与实际数据绑定,你需要定义一个数据源,如`BindingSource`或直接使用数据表。假设你有一个数据表`DataTable dt`,你可以这样设置: ```csharp dataGridView1.DataSource = dt; ...

    DataGridView控件中加入ComboBox下拉列表框

    3. **绑定数据**:将数据源绑定到`DataGridView`,确保每个单元格都有对应的数据。 ```csharp dataGridView.DataSource = myDataTable; // 假设myDataTable是数据源 ``` 4. **事件处理**:可能需要监听`...

    c# datagridview 下拉框

    - 为下拉框填充数据源,可以是数组、列表或其他数据结构。这里假设我们有一个字符串数组`options`包含所有可选值。 ```csharp comboBoxColumn.DataSource = options; ``` 或者,如果你的数据源来自数据库或其他...

    C# DataGridView即可下拉选择又可手动输入内容的列

    注:本程序为个人原创,...4,手动输入一个下拉列表中不存在的值时,程序会自动将该值添加到数据源中,此时隐藏值(Key)和显示值(Value)一致。 5,获取到的单元格的值Value(也即Row[i].Cell[j].Value)为隐藏值(也即Key)

    DataGridView列头添加下拉列表实现数据过滤

    然而,为了提供更高级的用户体验,有时我们需要为`DataGridView`的列头添加下拉列表功能,以实现数据过滤。这通常涉及到自定义列头单元格类型,以及对事件处理和数据绑定的深入理解。 标题“DataGridView列头添加...

Global site tag (gtag.js) - Google Analytics