Binden Jedes XML-Dokument für WPF-TreeView
Möchte ich binden jedes XML-Dokument für WPF-TreeView mit TypeConverter.
Meine ursprüngliche Lösung war, Rekursion zu verwenden, aber, wenn das Dokument groß ist, ist die Benutzeroberfläche stark gebunden.
Folgenden link spricht über TypeConverter aber für bestimmte node - /element-Kombination:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/edd843b7-b378-4c2d-926f-c053dbd7b340
Was, wenn nicht bekannt ist, welche XML-Dokument aussieht? Da das für die Anzeige nur, ich weiß nicht viel über die Funktionalität an dieser Stelle möchte ich nur bind-XML in ein TreeView.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert es für andere Knoten-Typen mit ein paar einfachen änderungen. Erste, HierarchicalDataTemplate.ItemsSource-Bindung XPath muss geändert werden, um "child::node()|attribute::*", um alle untergeordneten Knoten und jedes Attribut. Fügen Sie dann DataTriggers für andere NodeTypes. Das Beispiel unten ist für mich gearbeitet. BEACHTEN Sie, dass ich Hinzugefügt-icons für verschiedene NodeTypes, möchten Sie vielleicht, um Sie zu entfernen:
So habe ich gefragt, die Frage auf, wie binden Sie alle XML-Dokuments unabhängig von schema-zu-Baum-Ansicht, in der folgenden Weise:
1. Bind-XML-Dokument für WPF-TreeView per XML-Provider und HierarchicalDataTemplate.
2. Zeigt alle Knoten des XML-Dokuments, einschließlich diejenigen, die Kind-Knoten in folgendem format:
>Node1
Node1 Inhalt
>Node2
Problem war, dass mein TreeView verbindlich sei, jedes XmlNode-name-Eigenschaft, TreeItem. Im Fall der text XmlNode es würde binden #text für das TreeItem das war nicht das, was ich wollte.
So über einen Beitrag auf der MSDN-forum bekam ich meine Antwort:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/cbdb2420-1403-436f-aa7f-b1e3b1acb398/
Also der trick war als Trigger verwenden, um set-Wert basierend auf der Art des Knoten festgestellt.
Nachteil ist, dass andere Typen von Knoten werden ignoriert, und das XML-Dokument enthält möglicherweise verschiedene Elemente, so dass dies funktioniert möglicherweise nicht für jede Art des Knoten festgestellt.
Hier ist XAML:
Haben Sie einen Blick auf meine Antwort auf folgenden thread - Die Anbindung von XML-Daten in die WPF-treeview-Steuerelement ich glaube, das ist genau das, was du bist suchen für.Der link im thread verweist auf einen post, das gibt Ihnen eine Schritt-für-Schritt-Beispiel mit einer option, um den Quellcode herunterladen.Das Beispiel ist in einer Art geschrieben, wie zu binden alle - XML-Dokument zu einer WPF-Baum-Ansicht