Comment lier récursivement une vue arborescente à un XDocument, en mappant chaque élément XML en un nœud dans l'arborescence?Silverlight lie récursivement Treeview à XDocument
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>
(données est une propriété de type XElement sur la ai-je fait une erreur quelque part ou ai-je vraiment besoin d'implémenter un IValueConverter juste pour obtenir les éléments enfants d'un XElement?
Justin, merci pour vos idées. Je crée un éditeur XML simple pour varier les schémas d'entrée, donc le XDocument est mon modèle de domaine - je ne vois pas l'avantage de créer/générer une réplique de code de chacun de mes schémas XML par opposition à "garder l'éditeur inconscient". [Modifier] Bien que je puisse essayer Linq2Xsd ... – wagi
Michael, Vous n'avez pas besoin d'outils sophistiqués. Construisez simplement un wrapper de 3 propriétés simples autour des classes LinqToXml avec Name, Value et Children. C'est à peu près 10 lignes de code, et puis databind à cela. Faites-moi savoir si vous rencontrez des problèmes lors de la mise en œuvre de cette approche. – JustinAngel
Un peu en retard, mais pour être complet: j'ai fini par faire exactement cela, je me suis écrit un wrapper (pas si mince) et j'ai aussi mis en place des méthodes et des propriétés pratiques. Merci! – wagi