Wie hinter einer XML-Zeichenfolge im Code laden UI-Steuerelemente auf datengebundene, die auf die XPath des XML binden?

StackOverflow https://stackoverflow.com/questions/60259

Frage

Jede Probe, die ich gesehen habe, verwendet statische XML in der XmlDataProvider Quelle, die dann UI-Steuerelemente verwendet wird, unter Verwendung von XPath Databind verbindlich. Idee ist es, eine dynamische XML (Struktur in den Entwickler bei der Codierung bekannt) zu bearbeiten, die WPF-Benutzeroberfläche verwendet wird.

Hat jemand einen Weg gefunden, eine dynamische XML-Zeichenfolge laden (zum Beispiel aus einer Datei während der Laufzeit geladen werden), dann verwenden Sie diese XML-Zeichenfolge als XmlDataProvider Quelle?

Code-Schnipsel wäre toll.

Update: Um es klar, Sagen wir, ich möchte eine XML-Zeichenfolge laden ich von einem Web-Service-Aufruf empfangen. Ich weiß, dass die Struktur des XML. So Databind ich es WPF UI-Steuerelemente auf dem WPF-Fenster. Wie diese Arbeit machen? Alle Proben über das Web, definieren die gesamte XML innerhalb des XAML-Code in dem XmlDataProvider Knoten. Das ist nicht das, was ich suche. Ich mag eine XML-Zeichenfolge in dem Code-Behind verwenden, um den UI-Steuerelemente wird datengebundene.

War es hilfreich?

Lösung

Hier finden Sie einige Code, den ich verwendet, um eine XML-Datei von der Festplatte zu laden und es zu einem TreeView zu binden. Ich entfernte einige der normalen Tests für Prägnanz. Die XML in dem Beispiel ist eine OPML-Datei.

XmlDataProvider provider = new XmlDataProvider();

if (provider != null)
{
  System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
  doc.Load(fileName);
  provider.Document = doc;
  provider.XPath = "/opml/body/outline";
  FeedListTreeView.DataContext = provider;
}

Andere Tipps

mit Ihrem webservice Ihre XML erhalten und ein XML-Dokument von ihm erstellt haben, können Sie legen dann die Quelle Ihres XmlDataProvider zur XMLDocument Sie vom Service bekamen.

Ich bin nicht auf einem PC mit Visual Studio zu testen, aber es sollte möglich sein, dies zu tun.

Die Schritte sind wie Sie in Ihrer Frage erwähnt:

1. Get XML from webservice
2. Convert XML String to XML Document
3. Set the XMLDataProvider.Document value to your XML Document
4. Bind that to your controls
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top