Wie häufig hat man das Problem, dass man in Anwendungen Enumerationen verwendet und diese im Idealfall direkt an eine Combobox gebunden werden sollen. Das Beispiel zeigt, wie man einen Enumeration mit userverträglichen Einträgen an die Combobox bindet.

Definition der Enumeration
1:Imports System.ComponentModel
2:
3:Public Enum RecordingPublishType As Integer
4: <Description("Nicht")> _
5: None = 1
6: <Description("Moderatoren")> _
7: Moderators = 2
8: <Description("Teilnehmer")> _
9: Participants = 3
10: <Description("Berechtigte Benutzer")> _
11: TrustedUsers = 4
12:End Enum


Hilfsfunktionen zur übersetzung der Enumerationen
1:    *Public Shared Function GetEnumDescription(ByVal EnumConstant As System.Enum) As String
2: Dim fi As Reflection.FieldInfo = EnumConstant.GetType().GetField(EnumConstant.ToString())
3: Dim attr() As System.ComponentModel.DescriptionAttribute = _
4: DirectCast(fi.GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute), False), _
5: System.ComponentModel.DescriptionAttribute())
6: If attr.Length > 0 Then
7: Return attr(0).Description
8: Else
9: Return EnumConstant.ToString()
10: End If
11: End Function
12:
13:
14: *Public Shared Function GetEnumDescriptions(ByVal EnumConstant As Type) As String()
15: Dim res(-1) As String
16: For Each ec As [Enum] In [Enum].GetValues(EnumConstant)
17: ReDim Preserve res(UBound(res) + 1)
18: res(UBound(res)) = GetEnumDescription(ec)
19: Next
20: Return res
21: End Function
22:
23: Public Shared Function GetDescriptionsEnum(ByVal EnumConstant As Type, ByVal value As String) As System.Enum
24: Dim res(-1) As String
25: For Each ec As System.Enum In System.Enum.GetValues(EnumConstant)
26: ReDim Preserve res(UBound(res) + 1)
27: If value = GetEnumDescription(ec) Then
28: Return ec
29: End If
30: Next
31: Return Nothing
32: End Function
33:
* Funktionen von http://blog.dahead.de/howto-vb-net-enums-mit-beschreibungen-versehen übernommen

Combobox an Enum binden
1:cbx_Combobox.Items.AddRange(Functions.GetEnumDescriptions(GetType(RecordingPublishType)))


SelectedItem der Combobox mit Enumwert auswählen
1:cbx_Combobox.SelectedItem = Functions.GetEnumDescription(.PublishingType)


SelectedValue in Enuminstanz schreiben
1:Dim en_Type as RecordingPublishingType
2:en_Type = Functions.GetDescriptionsEnum(GetType(RecordingPublishType), cbx_Combobox.SelectedItem)