如何更改数据绑定列的单元格类型

How to change cell type of a databound column

我有一个 datagridview 通过 table adaptor 绑定到 dataset,后者又链接到 SQL table。

我想将状态和优先级列的单元格类型更改为组合框。

我试过这个:

 private void dgvFechas_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
    {
        try
        {
            if (e.Column.ValueType == typeof(TextBox) && (e.Column.Index == 5) || (e.Column.Index == 6))
            {
                e.Column.CellTemplate = new DataGridViewComboBoxCell();
            }
        }
        catch (Exception ex) { }
    }

但程序启动时事件处理程序似乎并没有触发。

所以我不太确定如何让它工作。

我遵循了允许我更改单元格类型的指南:

https://social.msdn.microsoft.com/Forums/windows/en-US/c6d60712-135e-4fd3-a6a0-51dbb4be0dca/how-to-add-combobox-to-winform-datagridview-bound-to-datatable?forum=winforms

完成此操作后,我得到了一个 data_error,我通过忽略数据错误事件修复了它。我知道这并不是真正正确的做事方式,但它对我有用。

 private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
    {
        //ignore
    }