在绑定的 DataGridViewComboBoxColumn 中显示枚举的友好名称

问题描述

我在 DatagridView 中显示对象列表。对于一个属性,我正在显示枚举的值。因此,当加载 datagridview 时,我将枚举值的列替换为 DataGridViewComboBoxColumn。 如列的显示值,我想使用每个枚举值的描述​​。我可以通过在 enum 上使用扩展来获取描述。

Imports System.Runtime.CompilerServices

Public Module EnumExtensions
    <Extension>
    Function GetDescription(genericEnum As [Enum]) As String
        Dim genericEnumType As Type = genericEnum.GetType()
        Dim memberInfo As System.Reflection.MemberInfo() = genericEnumType.GetMember(genericEnum.ToString())

        If Not memberInfo Is nothing And memberInfo.Length > 0 Then
            Dim _Attribs As Object() = memberInfo(0).GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute),False)
            If Not _Attribs Is nothing And _Attribs.Length > 0 Then
                Return DirectCast(_Attribs(0),System.ComponentModel.DescriptionAttribute).Description
            End If
        End If
        Return genericEnum.ToString()
    End Function
End Module

这是我对 DataGridViewComboBoxColumn 的准备(TT 是我的枚举类型)

Dim column As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn()
                column.DataSource = [Enum].GetValues(GetType(TT))
                column.DataPropertyName = "ReadFrom"
                column.Name = "Column Type"

这是我展示的班级

Imports System.ComponentModel
Public Class CustomPropertyDeFinition
    Property Name As String
    Property ReadFrom As PropertyReadFromType
    Public Enum PropertyReadFromType
        <Description("General (@)")>
        At
        <Description("All Configurations")>
        All
    End Enum
End Class

如何在 DataGridViewComboBoxColumn 中显示枚举的描述?

非常感谢大家。 :)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)