Ignazio Catanzaro

Sviluppatore Software

C# .Net

Archivio Posts
Anno 2012

Anno 2011

Anno 2010
Sondaggio
Introdurre argomenti di software engineering in un blog può essere utile?

Si
No

Enumeratori e Binding

Salve a Tutti! Oggi, effettuando il refactoring di un progetto ho avuto la necessita di gestire diverse enumerazioni e i relativi Binding ai controlli, in pratica l'interfaccia gestisce N combobox cui Items non sono altro che i valori di un dato Enumeratore. La questione relativamente al full framework è molto semplice ovvero basta utilizzare il metodo GetValues() della classe statica Enum per impostare come DataSource di un controllo i relativi valori dell'enumeratore :

tuaComboBox.DataSource = Enum.GetValues( typeof ( TuoEnumeratore ) );

Per quanto concerne il Compact Framework invece, la questione è leggermente più complessa in quanto il metodo GetValues non è implementato.

Abbiamo bisogno quindi di un metodo che dato come parametro l'istanza di un Enumeratore ci ritorni una lista o un'interfaccia IEnumerable :

    public static class Utilies
{
public static IEnumerable<Enum> EnumToList(Enum Enumeratore)
{
List<Enum> _enumerazioni = new List<Enum>();
foreach (FieldInfo InfoValori in Enumeratore.GetType().GetFields(BindingFlags.Public))
{
_enumerazioni.Add((Enum)InfoValori.GetValue(Enumeratore));
}
return _enumerazioni;
}
}

Il metodo si utilizza molto semplicemente in questa maniera :

tuaComboBox.DataSource = EnumToList(new TuoEnumeratore());

Stay Tuned ;)
Categoria: Framework .Net
lunedì, 11 apr 2011 Ore. 17.14

Calendario
novembre 2024
lmmgvsd
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
Ora e Data
Statistiche
  • Views Home Page: 33.411
  • Views Posts: 46.177
  • Views Gallerie: 0
  • n° Posts: 24
  • n° Commenti: 12
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003