gpt4 book ai didi

c# - ComboBox 绑定(bind)到枚举类型的值,同时还具有 "blank"条目?

转载 作者:太空狗 更新时间:2023-10-30 00:36:48 24 4
gpt4 key购买 nike

如果我将 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com