以编程方式在WPF组合框中设置所选项目

时间:2012-03-23 10:58:21

标签: c# wpf data-binding

我有一个使用以下代码绑定到枚举的组合框:

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;

但这不起作用。

有人可以提出建议吗?

2 个答案:

答案 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));