微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在绑定的 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 举报,一经查实,本站将立刻删除。