一个datagrid组合框中单元格的不同数据源

时间:2013-08-05 16:55:02

标签: winforms datagridview combobox datasource datagridviewcomboboxcell

我在datagridview中有两个组合框列,并尝试根据第一个中选择的内容为第二个设置数据源。

不幸的是,没有太多运气。我正在尝试处理两个事件:CellBeginEdit和PopupClosing,即使我认为第一个事件已经足够了。

这个问题的奇怪之处在于,我没有让comboboxcolumn单元格显示正确的成员集合,而是让它们显示我在这个datagridview中打开的最后一个comboboxcolumn的数据源,甚至在调试过程中我也能看到这个数据源组合框细胞的属性设置为我想要的。

这是我的代码:

switch ((JobType)(Enum.Parse(typeof(JobType), dgvScheduledJobs.Rows[e.RowIndex].Cells[dgvColumnJobType.Index].Value.ToString())))
{
    case JobType.Upload:
        {
            (this.dgvScheduledJobs[this.dgvColumnSource.Index, e.RowIndex] as DataGridViewComboBoxCell).DataSource = _datasources;
            break;
        }
    case JobType.Extract:
        {
            (this.dgvScheduledJobs[this.dgvColumnSource.Index, e.RowIndex] as DataGridViewComboBoxCell).DataSource = _queries;
            break;
        }
    default:
        {
            break;
        }
}

任何帮助或建议都将受到高度赞赏。

更新

对不起伙计们。问题是由于我们使用从DataGridViewoComboBoxColumn派生的类,我们在其中覆盖DataGridViewComboBoxCell中使用的控件。所以这是我们创造的问题。

一般来说,我认为上述方法应该有效。

1 个答案:

答案 0 :(得分:0)

这听起来像是DataGrid的刷新问题。看一下this帖子。