In userinterface you need to show a list the names off an enumaration but you want to store the value
I've made a class that just to provide for these cases:
Code:Public Class SelectionListData Implements Iclonable Private _Id As Integer Private _Description As String Public Sub New() _Id = 0 _Description = String.empty End Sub Public Sub New(ByVal Id As Integer, ByVal Description As String) Me.New() _Id = Id _Description = Description End Sub Public Property Id() As Integer Get Return _Id End Get Set(ByVal value As System.Nullable(Of Integer)) _Id = value End Set End Property Public Property Description() As String Get Return _Description End Get Set(ByVal value As String) if value is nothing then value = String.Empty end if _Description = value End Set End Property Public Function Clone() As Object Implements System.ICloneable.Clone Dim Cloneobject As SelectionListData Cloneobject = Me.memberwiseclone Return Cloneobject End Function Public Shared Function MakeSelectionListFromEnum(ByVal EnumToList As Type) As List(Of SelectionListData) Dim Values As Array Dim Names As Array Dim Itm As SelectionListData MakeSelectionListFromEnum = New List(Of SelectionListData) Values = System.Enum.GetValues(EnumToList) For Sh As Short = 0 To Values.Length - 1 Itm = New SelectionListData Itm.Id = Values.GetValue(Sh) Itm.Description = Values(Sh).ToString MakeSelectionListFromEnum.Add(Itm) Next End Function End Class
To use it in code :
Dim X as List(of SelectionListData)
X = SelectionListData.MakeSelectionListFromEnum(GetType(YourEnum))


Reply With Quote