将Enum []绑定到ListBox

时间:2010-05-20 06:05:59

标签: wpf binding enums

我有下一个枚举

Enum rcCategory
{
  Incoming,
  Internal,
  Outgoing
}

我的班级里有属性“类别”,它有rcCategory []类型。

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

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

但是这段代码没有按预期工作。 我怎样才能做到这一点。我的listBox总是空的,但是source属性有值

1 个答案:

答案 0 :(得分:1)

见Bea Stollnitz排名靠前的文章。
简而言之,您需要绑定到一个ObjectProvider,它调用静态方法Enum.GetValues(typeof(YourEnum))来返回列表。

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

更新:抱歉有轻微的速读问题。这个更容易..验证它的工作原理。推荐:找到ProgrammingWPF的副本,然后通过DataBinding章节......

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;

       }