【问题标题】:Programmatically set selected item in a WPF combobox以编程方式设置 WPF 组合框中的选定项目
【发布时间】:2012-03-23 10:58:20
【问题描述】:

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

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;

但这不起作用。

有人可以建议吗?

【问题讨论】:

标签: c# wpf data-binding


【解决方案1】:

您需要将字符串转换为枚举实例:

cmb.SelectedItem = (DATABASE_TYPES)Enum.Parse(typeof(DATABASE_TYPES), propertyNode.Attributes["default"].Value);

【讨论】:

  • 太棒了。过去我没有过多地使用枚举。看来我必须绕开他们。谢谢 我会尽快标记为答案
【解决方案2】:

您还可以从enum 获取字符串列表,并且您的代码可以正常工作

 cmb.ItemsSource = Enum.GetNames(typeof(DATABASE_TYPES));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多