DataGridViewComboBoxColumn - 下拉列表中的项目类型

时间:2009-02-23 14:08:59

标签: c# .net datagridview

我有一个具有ComboBox列的DataGridView。我使用字段

类型的项目填充此列的列表
DataGridViewComboBoxColumn fieldsColumn = argumentsDataGridView.Columns["field"] as DataGridViewComboBoxColumn;
            foreach (Field field in SessionData.Fields)
                fieldsColumn.Items.Add(field);
            fieldsColumn.DisplayMember = "Name";  

然后在一些用户的操作后,我在这个列的单元格中放了一个值,如下所示:

private void AddArgument(string argumentName, Field field)
        {
            int index = argumentsDataGridView.Rows.Count;
            argumentsDataGridView.Rows.Add(new DataGridViewRow());
            DataGridViewRow newRow = argumentsDataGridView.Rows[index];
            newRow.Cells["nameArg"].Value = argumentName;
            -> newRow.Cells["field"].Value = field;
        }

如果我现在访问单元格的值,则其类型为字段。如果我从组合中选择不同的项目,则单元格的值将变为字符串。我该怎么处理?我需要字段类型的项目。

1 个答案:

答案 0 :(得分:3)

解决方案是在课程字段中创建属性自我

public Field Self
        {
            get { return this; }
        }

并设置为组合框列的ValueMember 我认为没有指定ValueMember 这个是一个默认的返回值,我错了。