Utiliser les Enum comme source de données d'une liste déroulante sous .NET

Publié le 24 février 2009 par Dave Lizotte
Il peut sembler inutile d'utiliser une source de données Enum pour vos contrôles serveur .NET. Par contre, dans la réalité il ce peut que ce soit nécessaire peut importe la raison qui vous pousses à utiliser une telle technique. Bref, voyons plutôt comment utiliser le tout dans vos développements sans trop de problème.

Enum

Public Enum ECouleur
   Rouge
   Bleu
   Jaune
   Vert
   Orange
   Noir
End Enum

VB.NET  

Dim couleurs As String() = [Enum].GetNames(GetType(ECouleur))
For Each couleur As String In couleurs  
   MonComboBox.Items.Add(New ListItem(StringUtils.FromCamelCase(couleur), couleur))
Next

Public Shared Function FromCamelCase(ByVal camelCase As String) As String
   If camelCase Is Nothing Then
   Throw New ArgumentException("Valeur Null, non autorisé")
   End If
    
   Dim sb As New StringBuilder(camelCase.Length + 10)
   Dim first As Boolean = True
   Dim lastChar As Char = ControlChars.NullChar
  
   For Each ch As Char In camelCase
   If Not first AndAlso (Char.IsUpper(ch) OrElse Char.IsDigit(ch) AndAlso Not Char.IsDigit(lastChar)) Then
   sb.Append(" "c)
   End If
  
   sb.Append(ch)
   first = False
   lastChar = ch
   Next
  
   Return sb.ToString()  
End Function