2010-05-20 4 views
0

je prochaine énumérationReliure Enum [] pour ListBox

Enum rcCategory 
{ 
    Incoming, 
    Internal, 
    Outgoing 
} 

et j'ai propriété "catégories" dans ma classe qui a le type rcCategory [].

Je voudrais associer cette propriété à listBox. J'utilise le code suivant pour cela

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

Mais ce code ne fonctionne pas comme prévu. Comment puis-je faire cela. Ma liste de contrôle est toujours vide mais la propriété de la source a une valeur

Répondre

1

Voir l'article de Bea Stollnitz classé au premier plan.
En bref, vous devez vous lier à un objet ObjectProvider qui appelle la méthode statique Enum.GetValues ​​(typeof (YourEnum)) pour renvoyer la liste.

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

Mise à jour: Désolé eu un petit problème de speedreading. Celui-ci est plus facile .. Vérifié que cela fonctionne. Recommandé: Trouvez une copie de ProgrammingWPF et passer par le chapitre DataBinding ...

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

Je lis cet article. Mais dans ce seul exemple de liaison enum simple à ListBox. Mon problème avec enum [] pas simple enum – Polaris

+0

@Polaris - désolé. réponse mise à jour. – Gishu

+0

Ça marche. Je vous remercie – Polaris