Ich habe eine Enum:C# einschalten Aufzählungen
public enum Status
{
Incomplete = 1, Complete = 2, Cancelled = 3, Deleted = 4
}
Jetzt auf einer bestimmten Seite Ich möchte diese Enum in einer Checkboxlist aufzulisten. Dies wäre in Ordnung, außer dass der Text jedes Kontrollkästchens einen anderen Text als die Enumeration anzeigen soll.
dh die Kontrollkästchen sollte sagen:
"nicht verarbeitet" anstelle von "Incomplete"
"verarbeitet" anstelle von "Complete"
"Void" statt "Cancelled"
Ist es möglich, diese Enum in eine foreach zu setzen und dann den Status zu aktivieren und den Text zu aktualisieren. Wie so:
var statuses = Enum.GetNames(typeof(Status));
foreach (var status in statuses)))
{
switch (status)
{
case Status.Complete.ToString():
status = "Processed";
break; ...etc
}
}
Irgendwelche Ideen würden sehr geschätzt.
mir scheint, Dadurch wird ein neues Attribut (EnumValueDataAttribute) erstellt, für das bereits ein Attribut vorhanden ist (System.ComponentModel.DescriptionAttribute). Es funktioniert, aber ich frage, warum Sie ein neues erstellen würden, anstatt DescriptionAttribute zu verwenden? – TLiebe
@TLiebe - guter Punkt. Ich bin das Opfer jahrelanger künstlich auferlegter Codierstandards. So haben die Entwickler, denen ich beigetreten bin, das gemacht. Ich breche kein Muster; macht böse Code-Reviews! :) –