2012-03-23 4 views
2

나는 다음과 같은 코드를 사용하여 열거에 바인딩 된 콤보가 :프로그래밍 설정 선택한 항목

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

답변

2

당신은 열거 인스턴스에 문자열을 변환 할 필요가 : 또한 enum에서 문자열 목록을 얻을 수

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

Brilliant. 나는 과거에 enums로 많은 일을하지 않았다. 나는 그들 주위에 머리를 써야만하는 것처럼 보입니다. 감사합니다. 가능한 한 빨리 답변으로 표시합니다. – user589195

0

하고

cmb.ItemsSource = Enum.GetNames(typeof(DATABASE_TYPES)); 
당신은 할 수 있습니다
관련 문제