【发布时间】:2010-04-25 22:13:02
【问题描述】:
是否可以在 .NET 3.5 中将项目从 Enum 加载到 ComboBox?
【问题讨论】:
-
WinForms? ASP.NET? WPF?银光?
-
WinForms,您的解决方案有效。 :D 谢谢
标签: c# .net-3.5 combobox enums
是否可以在 .NET 3.5 中将项目从 Enum 加载到 ComboBox?
【问题讨论】:
标签: c# .net-3.5 combobox enums
是的。
combobox.DataSource = Enum.GetValues(typeof(SomeEnum));
【讨论】:
这是我们在最近的一个项目中使用的一些代码。它处理本地化的枚举字符串(通过传入ResourceManager 对象)并直接填充.Items 数组而不是使用数据源——这对于填充ComboBox 很有用,包括在创建之前设置它的.SelectedItem或其父控件可见。
public static void PopulateComboBox<T>(ComboBox box, ResourceManager res) {
box.FormattingEnabled = true;
ListControlConvertEventHandler del = delegate(object sender, ListControlConvertEventArgs e) {
e.Value = res.GetString(e.Value.ToString());
};
box.Format -= del;
box.Format += del;
box.BeginUpdate();
box.Items.Clear();
foreach(T value in Enum.GetValues(typeof(T))) {
box.Items.Add(value);
}
box.EndUpdate();
}
像这样使用它:
PopulateComboBox<MyEnum>(myComboBox, MyEnumStrings.ResourceManager);
【讨论】: