¿Cómo cargar una cadena xml en el código subyacente a los controles de interfaz de usuario vinculados a datos que se vinculan al XPath del XML?

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

Pregunta

Cada muestra que he visto usa XML estático en la fuente xmldataprovider, que luego se usa para vincular controles de interfaz de usuario mediante enlace XPath.La idea es editar un XML dinámico (estructura conocida por el desarrollador durante la codificación), utilizando la interfaz de usuario de WPF.

¿Alguien ha encontrado una manera de cargar una cadena xml dinámica (por ejemplo, cargarla desde un archivo durante el tiempo de ejecución) y luego usar esa cadena xml como fuente de XmlDataprovider?

Los fragmentos de código serían geniales.

Actualizar:Para dejarlo más claro, supongamos que quiero cargar una cadena XML que recibí de una llamada de servicio web.Conozco la estructura del xml.Entonces lo vinculo a los controles de la interfaz de usuario de WPF en la ventana de WPF.¿Cómo hacer que esto funcione?Todos los ejemplos en la web definen el XML completo dentro del código XAML en el nodo XmlDataProvider.Esto no es lo que estoy buscando.Quiero usar una cadena xml en el código subyacente para vincular datos a los controles de la interfaz de usuario.

¿Fue útil?

Solución

Aquí hay un código que utilicé para cargar un archivo XML desde el disco y vincularlo a un TreeView.Eliminé algunas de las pruebas normales de concisión.El XML del ejemplo es un archivo 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;
}

Otros consejos

utilizando su servicio web, obtenga su XML y cree un documento XML a partir de él. Luego puede configurar la fuente de su xmlDataProvider en el documento XML que obtuvo del servicio.

No estoy en una PC con Visual Studio para probarlo, pero deberías poder hacerlo.

Los pasos son los que mencionaste en tu pregunta:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top