我有一个关于C#和WPF的简单问题。 我的问题将在我的尝试之后进行:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
foreach (var item in Races)
{
cbRace.Items.Add(item);
}
}
}
enum Races
{
Human=1,
Dwarf,
Elf,
Orc,
Goblin,
Vampire,
Centaur
}
好的,我的问题是如何将值(例如Human,dwarf,elf ....)添加到组合框中:cbRace?抱歉,我是C#的新手,所以如果有人可以帮助我,我会集会赞赏:),提前谢谢。
答案 0 :(得分:18)
private void Window_Loaded(object sender, RoutedEventArgs e)
{
foreach (var item in Enum.GetValues(typeof(Races)))
{
cbRace.Items.Add(item);
}
}
enum Races
{
Human = 1,
Dwarf,
Elf,
Orc,
Goblin,
Vampire,
Centaur
}
答案 1 :(得分:16)
答案 2 :(得分:5)
这可能是设置ComboBox项目的最简单方法:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
cbRace.ItemsSource = Enum.GetValues(typeof(Races));
cbRace.SelectedIndex = 0;
}
没有必要循环枚举值,只需设置ItemsSource
属性。
答案 3 :(得分:2)
这不是一个首选的解决方案,因为Clemens已经给你了,但如果你想直接添加XAML,你也可以这样做
<ComboBox>
<urCode:Races>Human</urCode:Races>
<urCode:Races>Dwarf</urCode:Races>
<urCode:Races>Elf</urCode:Races>
</ComboBox>
你还可以实现一个IValueConverter,当绑定到Type时,返回Enum.GetValues
答案 4 :(得分:1)
在C#中将枚举值添加到Combobox的最短路径
class User{
public enum TYPE { EMPLOYEE, DOCTOR, ADMIN };
}
//将此类添加到Form Cunstructor的表单加载事件
cmbUserType.Items.AddRange(Enum.GetNames(typeof(User.TYPE)));
答案 5 :(得分:0)
使用此
cbRace.Datasource = Enum.GetValues(typeof(Races));
将枚举数据绑定到组合框,然后使用组合框的selectedValue和selectedText属性来检索名称和值;
答案 6 :(得分:0)
SELECT MAX(id)