Comment charger une chaîne XML dans le code derrière les contrôles d'interface utilisateur liés aux données qui se lient au XPath du XML ?

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

Question

Chaque exemple que j'ai vu utilise du XML statique dans la source xmldataprovider, qui est ensuite utilisé pour lier les contrôles de l'interface utilisateur à l'aide de la liaison XPath.L'idée est d'éditer un XML dynamique (structure connue du développeur lors du codage), à ​​l'aide de l'interface utilisateur WPF.

Quelqu'un a-t-il trouvé un moyen de charger une chaîne XML dynamique (par exemple, chargez-la à partir d'un fichier pendant l'exécution), puis utilisez cette chaîne XML comme source XmlDataprovider ?

Des extraits de code seraient formidables.

Mise à jour:Pour le rendre plus clair, disons que je souhaite charger une chaîne XML que j'ai reçue d'un appel de service Web.Je connais la structure du XML.Je le lie donc aux contrôles de l'interface utilisateur WPF sur la fenêtre WPF.Comment faire en sorte que cela fonctionne ?Tous les exemples sur le Web définissent l’intégralité du XML dans le code XAML dans le nœud XmlDataProvider.Ce n'est pas ce que je recherche.Je souhaite utiliser une chaîne XML dans le code-behind pour être liée aux contrôles de l'interface utilisateur.

Était-ce utile?

La solution

Voici un code que j'ai utilisé pour charger un fichier XML à partir du disque et le lier à un TreeView.J'ai supprimé certains des tests normaux par souci de concision.Le XML dans l'exemple est un fichier 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;
}

Autres conseils

en utilisant votre service Web, récupérez votre XML et créez un document XML à partir de celui-ci. Vous pouvez ensuite définir la source de votre xmlDataProvider sur le XMLDocument que vous avez obtenu du service.

Je ne suis pas sur un PC avec Visual Studio pour le tester mais cela devrait vous être possible de le faire.

Les étapes sont telles que vous l'avez mentionné dans votre question :

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top