Question

Comment puis-je récursivement lier un Treeview à un XDocument, mappage de chaque élément XML à un nœud dans l'arborescence?

Le code ci-dessous devrait fonctionner de mon point de vue (et aussi selon les postes très peu que j'ai trouvé en ce qui concerne la liaison directe), mais il ne fonctionne pas:

<sdk:TreeView ItemsSource="{Binding Path=Elements}" DataContext="{Binding Path=Data}">
  <sdk:TreeView.ItemTemplate>
   <data:HierarchicalDataTemplate ItemsSource="{Binding Path=Elements}">
    <StackPanel Orientation="Vertical">
     <TextBlock Text="{Binding Name}"/>
    </StackPanel>
   </data:HierarchicalDataTemplate>
  </sdk:TreeView.ItemTemplate>
</sdk:Treeview>

(Data est une propriété de type XElement sur les parents de DataContext)

Ai-je fait une erreur quelque part de ou dois-je vraiment besoin de mettre en œuvre un IValueConverter pour avoir accès à des éléments enfants d'un XElement?

Était-ce utile?

La solution

Le membre « Eléments » est pas une propriété, il est un appel Méthode.
Vous ne pouvez pas lier aux appels de méthode dans Silverlight.

Si vous êtes vraiment décidés à obtenir ce scénario fonctionne, vous avez 2 options que je peux voir:
1. Utilisez un IValueConverter pour extraire le contenu de la méthode « Eléments ».
2. Enroulez le XDocument dans les classes gérées dans une hiérarchie appropriée.

Personnellement, Alors que l'option 1 semble le plus rapide, je crois que dans le long terme, il vous en coûtera plus de temps pour maintenir et soutenir les dépenses puis 10 minutes supplémentaires construction d'un modèle approprié de domaine.

Cordialement,
- Justin Ange

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top