C# 使用枚举绑定组合框selectedvalue
绑定组合框selectedvalue失败C# 使用枚举绑定组合框selectedvalue,c#,winforms,C#,Winforms,绑定组合框selectedvalue失败 public void InitializePage() { cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus)); } cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus)); cbStatus.DataValueField = Enum.Get
public void InitializePage()
{
cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
}
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
关于我的构造函数
public EditCourseForm(int status)
{
InitializePage();
cbStatus.SelectedText = Enum.GetName(
typeof(CourseStudentStatus), status).ToString();
}
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
我也试过这个。
cbStatus.SelectedValue=Status
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
但我无法在组合框上设置SelectedValue
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
更新
我的枚举
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
你试过了吗
public EditCourseForm(CourseStudentStatus status)
{
InitializePage();
cbStatus.SelectedItem= status;
}
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
将InitializePage()函数代码更改为
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
公共无效初始化页()
{
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
已更新
试试这个
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
var itemValues = Enum.GetValues(typeof(CourseStudentStatus)).Cast<CourseStudentStatus>().ToDictionary(obj => obj.ToString(), obj => obj.GetHashCode()).ToList();
comboBox1.DisplayMember = "Key";
comboBox1.ValueMember = "Value";
comboBox1.DataSource = itemValues;
var itemValues=Enum.GetValues(typeof(CourseStudentStatus)).Cast().ToDictionary(obj=>obj.ToString(),obj=>obj.GetHashCode()).ToList();
comboBox1.DisplayMember=“Key”;
comboBox1.ValueMember=“Value”;
comboBox1.DataSource=itemValues;
这里itemValues是一种类型的列表
问题得到解决。 cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
cbStatus.SelectedItem=(CourseStudentStatus)状态;
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
希望有帮助。您面临的错误或问题是什么?如果我传入的状态是3,我希望cbStatus选择id=3,但是它会继续选择第一项。它应该能够执行以下操作。
cbStatus.SelectedValue=status
。但是为什么它不..它显示错误“无法在ValueMember为空的ListControl中设置SelectedValue。”也许您可以使用其他内容,例如字符串数组而不是枚举?@giddy:我已使用枚举格式更新了问题。combobox没有DataTextField或DataValueField。
cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));
cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}