使用枚举绑定组合框selectedvalue

问题描述:

我未能绑定组合框selectedvalue。使用枚举绑定组合框selectedvalue

public void InitializePage() 
{   
    cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus)); 
} 

在我的构造

public EditCourseForm(int status) 
{ 
    InitializePage();      
    cbStatus.SelectedText = Enum.GetName(
     typeof(CourseStudentStatus), status).ToString();   
} 

我已经试过这一点。 cbStatus.SelectedValue = Status

但我无法在ComboBox上设置SelectedValue。

更新 我枚举

public enum CourseStudentStatus 
{ 
    Active = 1, 
    Completed = 2, 
    TempStopped = 3, 
    Stopped = 4, 
} 
+0

你面对的错误或问题是什么? – gideon 2011-03-22 03:47:14

+0

如果我传入的状态是3,我希望cbStatus选择id = 3,但是,它会一直选择第一项。 – VeecoTech 2011-03-22 03:49:55

+0

它应该可以做这样的事情。'cbStatus.SelectedValue = Status'。但为什么它没有..它显示错误“无法设置一个ListControl的SelectedValue与一个空的ValueMember。” – VeecoTech 2011-03-22 03:51:49

问题的解决。
cbStatus.SelectedItem = (CourseStudentStatus)status;

希望它有帮助。

你试过

public EditCourseForm(CourseStudentStatus status) 
{ 
    InitializePage();    

    cbStatus.SelectedItem= status; 
} 
+0

nope,这没有绑定或者 – VeecoTech 2011-03-22 05:27:52

您InitializePage()函数的代码更改为这个

公共无效InitializePage() {

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; 

这里itemValues是一种List<KeyValuePair<string, int>>

+0

没有DataTextField或DataValueField组合框。 – VeecoTech 2011-03-22 05:29:03