将 Enum[] 绑定到 ListBox

发布于 2024-09-02 02:15:42 字数 331 浏览 1 评论 0原文

我有下一个枚举

Enum rcCategory
{
  Incoming,
  Internal,
  Outgoing
}

,并且我的类中有 rcCategory[] 类型的属性“类别”。

我想将此属性绑定到列表框。我为此使用下一个代码

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

但是该代码无法按预期工作。 我怎样才能做到这一点。我的列表框始终为空,但源属性具有值

I have next enumeration

Enum rcCategory
{
  Incoming,
  Internal,
  Outgoing
}

and I have property "categories" in my class which has rcCategory[] type.

I would like to bind this property to the listBox. I use next code for this

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

But this code doesnt work as expected.
How Can I do this. My listBox always is empty but source property has value

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮倦 2024-09-09 02:15:42

请参阅 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;

       }

See Bea Stollnitz top ranked article on it.
In short you need to bind to an ObjectProvider which calls the static method Enum.GetValues( typeof(YourEnum) ) to return the list.

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

Update: Sorry got a slight speedreading issue. This one is easier.. Verified that it works. Recommended: Find up a copy of ProgrammingWPF and go thru the DataBinding chapter...

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;

       }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文