【问题标题】:DataGridViewComboBoxColumn not populating values from the data sourceDataGridViewComboBoxColumn 不填充数据源中的值
【发布时间】:2016-10-26 12:49:09
【问题描述】:

我在标签页中有datagridview。 datagridview 有 6 列。第 6 列是组合框列。我正在尝试将数据源绑定到组合框单元。每行将根据行号具有不同的数据源。 datagridview 将始终有 10 行。问题是组合框没有填充任何值。它只是给了我空白项。如果我保留断点,datagrid 和 comboboxcolumn 数据源都会显示数据表值。有人能告诉我这里缺少什么吗?

 private void BuildFreshAccessMatrix()
    {
        dataGridView1.AutoGenerateColumns = false;
       DataGridViewComboBoxColumn cboPermissionCol = (DataGridViewComboBoxColumn)dataGridView1.Columns[5];
        //cboPermissionCol.DataPropertyName = "UserLevelCategoryName";
        dataGridView1.DataSource = dataProvider.GetBlankMatrixData();
        int i = 1;


        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            DataGridViewComboBoxCell cboPermission = (DataGridViewComboBoxCell)(row.Cells["UserLevelCategoryNameAdd"]);
            cboPermission.DataSource = dataProvider.GetPermissionComboData(i);
            cboPermission.DisplayMember = "UserLevelCategoryName";
            cboPermission.ValueMember = "UserLevelCategoryName";
            i += 1;

        }
    }

【问题讨论】:

  • 调试 dataProvider.GetPermissionComboData(i) 为您提供正确数量和正确类型的项目?
  • 是的。它给了我正确的数据表。

标签: c# winforms datagridview


【解决方案1】:

尝试将您的代码更改为:

DataGridViewComboBoxCell cboPermission = (DataGridViewComboBoxCell) 
dataGridView1.Rows[i].Cells["UserLevelCategoryNameAdd"];

而不是:

 DataGridViewComboBoxCell cboPermission = (DataGridViewComboBoxCell)
(row.Cells["UserLevelCategoryNameAdd"]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2011-12-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2023-02-01
    相关资源
    最近更新 更多