2012-03-23 102 views
2

我有一個是用下面的代碼結合到一個枚舉的組合框:編程方式設置在WPF組合框選擇的項目

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

您可能希望看到我的答案在這裏http://stackoverflow.com/questions/9242345/show-enum-in-a-combobox/9327548#9327548,它允許您本地化組合框中顯示的文本。 – Phil 2012-03-23 11:16:25

回答

2

您需要將字符串轉換爲一個枚舉實例:

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

輝煌。我過去並沒有和枚舉合作過。看起來我必須把頭靠近他們。謝謝我會盡快回答 – user589195 2012-03-23 11:05:02

0

你也可以得到來自enum字符串列表,你的代碼的工作,因爲它是

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