2009-08-18 48 views
3

我綁定字典的ComboBox這使枚舉values.To檢索選定值我用
C#的Windows - 如何從組合框

comboBox1.SelectedItem返回得到枚舉值尺寸值說[0 ,永久].Just我要檢索「永久」並將其轉換回枚舉。


像..
Employee.JobType = Enum.Parse(JobType,comboBox1.SelectedItem)

我怎樣才能做到這一點?

+1

嗨Employee.JobType =(JobType)comboBox1.SelectedValue 試試這個 – IordanTanev 2009-08-18 10:50:56

回答

15

或者:

Employee.JobType = (JobType)Enum.Parse(typeof(JobType), comboBox1.SelectedValue); 

或者:

Employee.JobType = (JobType)Enum.Parse(typeof(JobType), comboBox1.SelectedText); 
0

這會做的伎倆,我想:

string[] parts = comboBox1.SelectedItem.Split(
         new char[] { ',', '[', ']' }, 
         StringSplitOptions.RemoveEmptyEntries); 
Employee.JobType = (JobType)Enum.Parse(typeof(JobType), parts[1].Trim())); 

首先,使用逗號和方括號分割字符串,並有方法刪除任何空元素。這應該給你一個包含數字和文本的數組。使用文本部分進行枚舉分析。

請注意,您需要通過Type對象枚舉到Parse方法,然後你需要轉換的結果,因爲Parse返回類型爲object

1

如果項目源組合框是一本字典,是的SelectedItem類型:KeyValuePair < [類型鍵],JobType >

您可以通過鑄造的SelectedItem和訪問Value屬性訪問枚舉值。

var selectedItem = (KeyValuePair<[type of key], JobType>) comboBox1.SelectedItem; 
var jobType = selectedItem.Value; 
+0

漂亮和乾淨的解決方案TKS – 2017-07-13 16:31:16

0
Employee.JobType = (JobTypeEnum)Enum.Parse(typeof(JobTypeEnum), comboBox1.SelectedValue); 
+0

此代碼導致錯誤。 – 2015-11-15 09:07:08

1

請參閱本 - http://www.fmsinc.com/free/NewTips/NET/NETtip4.asp

PeopleNames people = (PeopleNames)Enum.Parse(ComboBox1.SelectedValue, PeopleNames) 

數據賓迪ng:

ComboBox1.DataSource = System.Enum.GetValues(typeof(PeopleNames)) 
+0

參考文章非常好。正是我在找的東西。謝謝。 – 2009-12-21 14:38:44

0

我有同樣的問題 - (WPF)我的組合包含鍵值對中的枚舉。

的唯一途徑我能得到列舉出被

KeyValuePair<string,string> selectedPair = (KeyValuePair<string,string>)(cmbApplications.SelectedItem); 
ProTraceLicence.Products chosenProduct = (ProTraceLicence.Products)Enum.Parse(typeof(ProTraceLicence.Products), selectedPair.Key); 

希望這可以幫助別人。真不敢相信它是如此難以