2014-01-20 69 views
3

返回無效投我試圖從WPF組合框中選擇的值轉換爲enumurator它在運行,否則該字符串和枚舉名稱匹配我的代碼返回無效的演員陣容轉換在WPF

Siren.PfundMemberWebServices.Emirates EM = (Siren.PfundMemberWebServices.Emirates)cmbemirate.SelectedValue 
+0

什麼是選擇值的類型? – ilansch

+0

什麼是所選對象的類型是字符串 –

+0

http://stackoverflow.com/questions/16100/how-do-i-convert-a-string-to-an-enum-in-c - 所以在定義問題後 - 我們可以看到它是重複的:) – ilansch

回答

4

將字符串轉換到你需要使用Enum.Parse

Siren.PfundMemberWebServices.Emirates EM = (Siren.PfundMemberWebServices.Emirates)Enum.Parse(typeof(Siren.PfundMemberWebServices.Emirates), cmbemirate.SelectedValue); 
+1

需要'typeof(Siren.PfundMemberWebServices.Emirates)''Parse()' –

+0

@MatthewWatson的第一個參數 - 謝謝。我在你的評論之前改變了它! – Sean

3

你的問題是不完整的,但是當施加顯式的轉換髮生InvalidCastExceptionenum。但是類型不在類型層次結構的相同路徑中。演員陣容不成功。

用途:

Siren.PfundMemberWebServices.Emirates EM = (Siren.PfundMemberWebServices.Emirates)Enum.Parse(typeof(Siren.PfundMemberWebServices.Emirates), cmbemirate.SelectedValue); 
2

如果你有一個組合框int類型,那麼你可以嘗試:

Siren.PfundMemberWebServices.Emirates EM = (Siren.PfundMemberWebServices.Emirates)Convert.ToInt32(cmbemirate.SelectedValue)