Ho un enum:C# Accendere enumerazioni
public enum Status
{
Incomplete = 1, Complete = 2, Cancelled = 3, Deleted = 4
}
Ora su una certa pagina desidero elencare questo enum in un CheckBoxList. Questo andrebbe bene tranne che voglio che il testo di ogni checkbox mostri un testo diverso dall'enum.
cioè le caselle di controllo dovrebbe dire:
"non elaborati" invece di "Incomplete"
"lavorati" invece di "Complete"
"Void" invece di "Annullato"
E 'possibile mettere questo enum in un foreach e quindi accendere lo stato e aggiornare il testo. Così:
var statuses = Enum.GetNames(typeof(Status));
foreach (var status in statuses)))
{
switch (status)
{
case Status.Complete.ToString():
status = "Processed";
break; ...etc
}
}
Qualsiasi idea sarebbe molto apprezzata.
Mi sembra questo sta creando un nuovo attributo (EnumValueDataAttribute) per il quale esiste già un (System.ComponentModel.DescriptionAttribute). Funziona, ma mi chiedo perché ne crei uno nuovo piuttosto che usare DescriptionAttribute? – TLiebe
@TLiebe - buon punto. Sono vittima di anni di standard di codifica artificialmente imposti. Questo è il modo in cui gli sviluppatori che ho aderito lo stavano facendo. Non rompo il modello; rende per le recensioni di codice brutto! :) –