嗨,我可以知道如何獲得下面的枚舉值綁定到組合框? 我寫了下面的代碼,它的效果很好,但奇怪是最好的方法。添加枚舉到組合框
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()和想要的值綁定回cbStatus,它鑄錯誤{「對象引用不設置爲一個對象的一個實例。」}
cbStatus.SelectedValue = Course.Status;
。
的cbStatus.Datasource不是空的,它的價值後綁定到cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
請指點。
我在想這是否有可能減少這段垃圾代碼?或者這可以轉換爲一個函數? – VeecoTech 2011-03-18 10:35:49
你可以把你的轉換爲一個字典轉換爲System.Enum的擴展方法,這將使你的代碼更具可讀性和通用性,但我不認爲有一種方法可以綁定到一個枚舉而不需要完成所有的GetValues和GetName東東。 – 2011-03-18 10:52:32