从String转换为Enum返回在WPF中无效的强制转换

时间:2014-01-20 12:26:58

标签: c# .net wpf enums

我尝试从WPF组合框选择的值转换为枚举器,它在运行时返回无效的强制转换,否则字符串和枚举名称匹配,我的代码是

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

3 个答案:

答案 0 :(得分:5)

要将字符串转换为enum,您需要使用Enum.Parse

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

答案 1 :(得分:3)

您的问题尚未完成,但在应用显式强制转换时会出现InvalidCastException。但是类型不在类型层次结构的相同路径中。演员阵容没有成功。

使用:

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

答案 2 :(得分:1)

如果你有使用组合框的int值,那么你可以尝试:

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