我通过 Stackoverflow 发现有一种简单的方法可以用枚举填充组合框:
cbTipos.DataSource = Enum.GetValues(typeof(TiposTrabajo));
就我而言,我为我的枚举定义了一些描述:
public enum TiposTrabajo
{
[Description("Programacion Otros")]
ProgramacionOtros = 1,
Especificaciones = 2,
[Description("Pruebas Taller")]
PruebasTaller = 3,
[Description("Puesta En Marcha")]
PuestaEnMarcha = 4,
[Description("Programación Control")]
ProgramacionControl = 5}
这工作得很好,但它显示的是价值,而不是描述
我的问题是,我想在组合框中显示枚举的描述(当它有描述时)或在没有值的情况下显示值。
如果有必要,我可以为没有描述的值添加描述。
提前谢谢。
尝试这个:
cbTipos.DisplayMember = "Description";
cbTipos.ValueMember = "Value";
cbTipos.DataSource = Enum.GetValues(typeof(TiposTrabajo))
.Cast<Enum>()
.Select(value => new
{
(Attribute.GetCustomAttribute(value.GetType().GetField(value.ToString()), typeof(DescriptionAttribute)) as DescriptionAttribute).Description,
value
})
.OrderBy(item => item.value)
.ToList();
为了使其正常工作,所有值都必须有描述,否则您将收到 NullReference 异常。希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)