繁体   English   中英

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

[英]DataGridViewComboBoxColumn - type of items in the drop down list

我有一个具有ComboBox列的DataGridView。 我用Field类型的项目填充此列的列表:

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;
        }

如果现在访问单元格的Value,则其类型为Field 如果我从组合中选择其他项目,则单元格的“值”将成为一个字符串。 我该如何处理? 我需要类型为Field的物品。

解决方案是在类Field中创建一个属性Self

public Field Self
        {
            get { return this; }
        }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM