问题描述
我在 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 (将#修改为@)