如果我将 WinForms ComboBox 绑定(bind)到枚举类型的值,即
combo1.DropDownStyle = ComboBoxStyle.DropDownList;
combo1.DataSource = Enum.GetValues(typeof(myEnumType));
谁知道我怎么能达到相同的结果,而除了匹配每个枚举值的条目外,我还可以有一个表示没有选择的空白条目?
我不能简单地向枚举类型添加特殊值,因为这必须灵活地处理任何枚举类型。
非常感谢您的帮助。
编辑: 我应该明确表示我想绑定(bind)实际的枚举值而不是它们的名称。如果绑定(bind)了实际的枚举值,则 ComboBox 负责调用它们的 ToString() 以获取要显示的文本。
最佳答案
不确定你们是否已经尝试过您发布的所有代码,但是您不能通过数据绑定(bind) ComboBox 添加项目。这是 winforms,不是 WPF,所以没有“DataBind”功能。
你可以这样做:
public static string[] GetEnumValues<T>(bool includeBlank)
{
List<string> values = new List<string>((Enum.GetValues(typeof(T)) as T[]).Select(t => t.ToString()));
if (includeBlank)
{
values.Insert(0, string.Empty);
}
return values.ToArray();
}
然后
combo.DataSource = GetEnumValues<myEnumType>(true);
关于c# - ComboBox 绑定(bind)到枚举类型的值,同时还具有 "blank"条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/807030/