我到处查了这个问题,但找不到答案。我有一个枚举值的组合框,它应该从类属性中获取其初始值。请记住,它不是数据绑定(bind)到属性。当我使用当前选定的项目设置类属性时,没有问题,但是当我尝试设置初始值时,组合框只是空白。
我已经调试过了,似乎 SelectedItem 设置正确,但它并没有直观地更新当前项目。这是我用于填充组合框的代码:
foreach(Gender gender in Enum.GetValues(typeof(Gender)))
{
genderComboBox.Items.Add(gender);
}
我用这个设置它:
genderComboBox.SelectedItem = person.Gender;
我之前也试过这样做:
genderComboBox.DataSource = Enum.GetValues(typeof(Gender));
没有任何作用。我还尝试将枚举属性转换为 int 并使用它来设置 SelectedIndex。如果我添加断点并检查值,一切似乎都应该有效,但事实并非如此。我真的很困惑。
最佳答案
我好像明白了。
SelectedItem
的默认值为 Gender.Male
,与 person.Gender
的默认值相同。由于 SelectedItem
已经等于 Gender.Male
,因此它没有直观地更新控件并将其留空。当我将SelectedItem
设置为null
,然后设置为初始值时,它突然起作用了。
关于c# - 在 C# Combobox 中设置选定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427205/