这只是对在ComboBox
源自Enum
.
我知道我可以将 a 数据绑定ComboBox
到Enum
这样的:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
comboBoxNames.DataSource = Enum.GetValues(typeof (Names));
}
}
public enum Names
{
JohnDoe,
JaneDoe,
JohnJackson,
JackJohnson
}
这是结果:
我想格式化显示值,ComboBox
使得 PascalCase 字符串值之间有一个空格,同时还传递Enum
我可以在switch
稍后的语句中使用的所选项目的值:
switch ((Names)comboBoxNames.SelectedItem)
{
case Names.JohnDoe:
// Do something John Doe-specific
break;
case Names.JaneDoe:
// Do something Jane Doe-specific
break;
case Names.JohnJackson:
// Do something John Jackson-specific
break;
case Names.JackJohnson:
// Do something Jack Johnson-specific
break;
}
我知道有一个ComboBox.FormatString
属性,但我不确定如何使用它来Names
按照我想要的方式格式化枚举。
这可能吗?我宁愿不使用属性,Enum
因为使用它最终涉及使用反射,这对于看起来如此简单的事情来说似乎有点过分了。任何帮助将非常感激。