作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
您好,我可以知道如何获取下面的枚举值以绑定(bind)到组合框吗?我写了下面的代码,效果很好,但想知道这是不是最好的方法。
public enum CourseStudentStatus
{
Active = 1,
Completed = 2,
TempStopped = 3,
Stopped = 4,
}
//Bind Course Status
Dictionary<string, int> list = new Dictionary<string, int>();
foreach (int enumValue in Enum.GetValues(typeof(CourseStudentStatus)))
list.Add(Enum.GetName(typeof(CourseStudentStatus), enumValue), enumValue);
var column = ((DataGridViewComboBoxColumn)dgv.Columns["studentCourseStatus"]);
column.DataPropertyName = "StudentStatus";
column.DisplayMember = "Key";
column.ValueMember = "Value";
column.DataSource= list.ToList();
----------------更新--------------------
您好,我已根据 Sanjeevakumar Hiremat 将我的代码更改为此,它运行良好。
cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
但是,当我想要一个 Get() 并将值绑定(bind)回 cbStatus 时,它会抛出错误 {"Object reference not set to an instance of an object."}cbStatus.SelectedValue = Course.Status;
。
cbStatus.Datasource不为空,绑定(bind)到cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
请指教。
最佳答案
下面应该是最简单的绑定(bind)方式。
column.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
要获取选定的值,您需要将其转换为枚举类型。
CourseStudentStatus selectedValue = (CourseStudentStatus)column.SelectedValue
Enum.GetValues返回 enumType 值的数组,然后可以将其绑定(bind)到任何控件。
我已经在一个独立的组合框上测试过这个,而不是在 DataGridView 的组合框列中,YMMV。
关于c# - 将枚举添加到组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5350684/
我是一名优秀的程序员,十分优秀!