我有一个使用以下代码绑定到枚举的组合框:
cmb.ItemsSource = Enum.GetValues(typeof(DATABASE_TYPES)).Cast<DATABASE_TYPES>();
其中DATABASE_TYPES是:
public enum DATABASE_TYPES
{
JDataStore, Access, SQLServer, H2, PostGresSQL, MySQL
};
我有一些与枚举值之一匹配的xml:
<property name="Database.Main.Type"
type="databaseType"
default="JDataStore"
permissions="superuser">
</property>
我正在尝试以编程方式将组合框的所选项目设置为xml中的默认值。
我试过了:
cmb.SelectedItem = propertyNode.Attributes["default"].Value;
但这不起作用。
有人可以提出建议吗?
答案 0 :(得分:2)
您需要将字符串转换为枚举实例:
cmb.SelectedItem = (DATABASE_TYPES)Enum.Parse(typeof(DATABASE_TYPES), propertyNode.Attributes["default"].Value);
答案 1 :(得分:0)
您还可以从enum
获取字符串列表,并且您的代码可以正常工作
cmb.ItemsSource = Enum.GetNames(typeof(DATABASE_TYPES));