DataGridViewComboBoxColumn的项目可以是自定义对象类型吗?

时间:2015-07-27 03:11:03

标签: .net datagridview datagridviewcombobox datagridviewcomboboxcell

DataGridViewComboBoxColumn我需要使用我的类MyValue的值作为组合框项(在Items属性中),但我得到 DataError 在运行期间离开组合框列时,我在其中选择了我的任何值。

DataGridViewComboBoxColumn如何与自定义类型的值一起使用(没有DataError错误)?

更多详情:

班级MyValue如下所示:

Public Class MyValue
    Implements ICloneable
    Public Property Definition As String
    Public Shadows Function ToString() As String
        Return "DEF" & Definition
    End Function
    Public Function Clone() As Object Implements ICloneable.Clone
        Return MemberwiseClone()
    End Function
End Class

DataSource属性未设置,预计是强制性的。

1 个答案:

答案 0 :(得分:0)

在给定DataGridViewComboBoxColumn属性DisplayMemberValueMember为空之前,会出现DataError问题。

  • DisplayMember设置为可用作显示值的属性名称。
  • ValueMember设置为可用于标识值对象的属性名称。

请注意,对于未绑定的列,它们无法在设计器中设置,因为它会将它们还原为"",因此必须以编程方式设置它们。

示例:

DisplayMember = "Definition"
ValueMember = "ThisObject"

...将自引用属性ThisObject添加到MyValue类:

Public Class MyValue
    '...
    Public Property ThisObject As MyValue
    Public Sub New()
        MyBase.New()
        ThisObject = Me
    End Sub
    '...
End Class