2010-05-20 73 views
0

我旁边枚举绑定枚举[]以列表框

Enum rcCategory 
{ 
    Incoming, 
    Internal, 
    Outgoing 
} 

和我在类具有rcCategory []类型具有属性“类别”。

我想将此属性绑定到listBox。我使用此代码

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

但是,此代码并不按预期工作。 我该如何做到这一点。我的列表框始终是空的,但源属性有价值

回答

1

请参阅Bea Stollnitz在它上面排名最高的文章。
总之,您需要绑定到调用静态方法Enum.GetValues(typeof(YourEnum))的ObjectProvider以返回列表。

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

更新:对不起了轻微的快速阅读的问题。这一个更容易..验证它的作品。推荐:找到了ProgrammingWPF的副本,我们将向您的数据绑定章...

XAML:

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

代码隐藏:

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的例子中。我的问题与枚举[]不简单枚举 – Polaris 2010-05-20 06:14:42

+0

@宝丽 - 对不起。更新的答案。 – Gishu 2010-05-20 06:56:39

+0

这是有效的。谢谢 – Polaris 2010-05-20 07:02:22