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

Can items of DataGridViewComboBoxColumn be of custom object type?

DataGridViewComboBoxColumn 中,我需要使用 class MyValue 的值作为组合框项目(在 Items 属性 中),但我离开我在其中选择任何值的组合框列时,在运行时出现 DataError

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


更多详情:

Class 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 属性 未设置,预计 而非 是强制性的。

DataError 问题一直存在,直到给定 DataGridViewComboBoxColumn 具有属性 DisplayMemberValueMember 为空。

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

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

示例:

DisplayMember = "Definition"
ValueMember = "ThisObject"

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

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