2010-05-20 9 views
0

에 나는 옆에 열거에게바인딩 열거는 [] 목록 상자

Enum rcCategory 
{ 
    Incoming, 
    Internal, 
    Outgoing 
} 

을하고 난 rcCategory [] 유형이 내 수업에 재산 "범주"를 가지고있다.

이 속성을 listBox에 바인딩하고 싶습니다. 이 코드는 다음 코드를 사용합니다.

MyListBox.SetBinding (ListBox.ItemsSource, new Binding {Source= myClass.categories}); 

그러나이 코드는 예상대로 작동하지 않습니다. 어떻게하면됩니까? 내 listBox는 항상 비어 있지만 소스 속성에는 값이 있습니다.

답변

1

Bea Stollnitz의 상위 랭킹 기사를 참조하십시오.
요약하면 정적 메서드 Enum.GetValues ​​(typeof (YourEnum))를 호출하여 해당 목록을 반환하는 ObjectProvider에 바인딩해야합니다.

http://bea.stollnitz.com/blog/?p=28

업데이트 : 죄송합니다 약간의 속독 문제를 얻었다. 이 방법이 더 쉽습니다. 작동하는지 확인하십시오. 권장 사항 : ProgrammingWPF의 사본을 찾아 데이터 바인딩의 장을 통해 이동 ...

XAML :

<ListBox DockPanel.Dock="Left" ItemsSource="{Binding EnumArrayProp}"/> 

Codebehind가 :

public partial class Window1 : Window 
    { 
     public rcCategory[] EnumArrayProp 
     { 
      get; set; 
     } 
     public Window1() 
     { 
      InitializeComponent(); 

      this.EnumArrayProp = new rcCategory[] { rcCategory.Incoming, rcCategory.Incoming, rcCategory.Outgoing }; 

      this.DataContext = this; 

     } 
+0

나는이 기사를 읽어 보시기 바랍니다. 그러나이 간단한 예제에서는 ListBox에 간단한 enum을 바인딩합니다. enum [내] 문제가 단순한 enum이 아닙니다 – Polaris

+0

@Polaris - 죄송합니다. 업데이트 된 답변. – Gishu

+0

작품입니다. 고맙습니다 – Polaris