Come caricare una stringa xml nel code-behind sui controlli dell'interfaccia utente con associazione dati che si associano all'XPath dell'XML?

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

Domanda

Ogni esempio che ho visto utilizza XML statico nell'origine xmldataprovider, che viene quindi utilizzato per associare i controlli dell'interfaccia utente utilizzando l'associazione XPath.L'idea è quella di modificare un XML dinamico (struttura nota allo sviluppatore durante la codifica), utilizzando l'interfaccia utente di WPF.

Qualcuno ha trovato un modo per caricare una stringa XML dinamica (ad esempio caricarla da un file durante il runtime), quindi utilizzare quella stringa XML come origine XmlDataprovider?

Gli snippet di codice sarebbero fantastici.

Aggiornamento:Per renderlo più chiaro, diciamo che voglio caricare una stringa XML che ho ricevuto da una chiamata di servizio web.Conosco la struttura dell'xml.Quindi lo associo ai controlli dell'interfaccia utente WPF nella finestra WPF.Come farlo funzionare?Tutti gli esempi sul Web definiscono l'intero XML all'interno del codice XAML nel nodo XmlDataProvider.Questo non è quello che sto cercando.Desidero utilizzare una stringa xml nel codebehind per associare i dati ai controlli dell'interfaccia utente.

È stato utile?

Soluzione

Ecco del codice che ho usato per caricare un file XML dal disco e associarlo a un TreeView.Ho rimosso alcuni dei normali test per concisione.L'XML nell'esempio è un file OPML.

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;
}

Altri suggerimenti

utilizzando il tuo servizio web ottieni il tuo XML e crea un documento XML da esso, puoi quindi impostare l'origine del tuo xmlDataProvider sull'XMLDocument che hai ottenuto dal servizio.

Non sono al PC con Visual Studio per testarlo, ma dovrebbe essere possibile farlo.

I passaggi sono quelli che hai menzionato nella tua domanda:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top