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