gpt4 book ai didi

c# - 将枚举添加到组合框

转载 作者:可可西里 更新时间:2023-11-01 08:57:51 25 4
gpt4 key购买 nike

您好,我可以知道如何获取下面的枚举值以绑定(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com