2011-03-22 133 views
3

我未能綁定組合框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

回答

7

問題的解決。
cbStatus.SelectedItem = (CourseStudentStatus)status;

希望它有幫助。

1

你試過

public EditCourseForm(CourseStudentStatus status) 
{ 
    InitializePage();    

    cbStatus.SelectedItem= status; 
} 
+0

nope,這沒有綁定或者 – VeecoTech 2011-03-22 05:27:52

0

您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

相關問題