我可以使用DataGridViewComboBoxColumn来显示类对象列表吗?

时间:2013-04-29 13:21:29

标签: c# .net datagridviewcombobox

我正在尝试使用类对象列表(DataGridViewComboBoxColumn重载)填充ToString。对于常规组合框,这种方法对我来说非常有效。但是,一旦我将DataGridViewComboBoxColumn加载到dataGridView,每次我点击数据网格时都会抛出错误。

这是错误。

The Following Exception Occurred in the DataGridView:
System.ArgumentException: DataGridViewComboBoxCell value is not valid.
To replace this default dialog please handle the DataError event.

这是在错误对话框之前执行的代码:

DataTable dt = new DataTable();

List<mclass> MObjects = new List<mclass>();

DataGridViewComboBoxColumn objcolumn = new DataGridViewComboBoxColumn();

objcolumn.DataSource = MObjects;

objcolumn.ValueType = typeof(mclass);

dataGridView1.DataSource = dt;

dataGridView1.Columns.Add(objcolumn);

现在,在错误消息之间,列可以正常工作。我可以完美地从列表中选择对象。如何让这个错误消失并让我的工作组合栏安静下来?我错过了什么吗?或者我是否需要找到一种方法来删除该错误消息?

经过一番研究后,我尝试添加这一行:

dt.Columns.Add("OBJList", typeof(mclass));

然而,这会产生相同的异常,更长时间(我已经省略了大部分内容,可根据要求提供):

The following exception occurred in the DataGridView:
System.FormatException: Invalid cast from 'System.String' to 'Namespace.mobject'. --->      
    System.InvalidCastException: Invalid cast from 'System.String' to 'Namespace.mobject'.

1 个答案:

答案 0 :(得分:0)

我相信您的ValueType必须是stringtypeof部分应该是提取值的方法,可能在ToString()