Como carregar uma string xml no código por trás dos controles de UI de ligação de dados que se ligam ao XPath do XML?

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

Pergunta

Cada exemplo que vi usa XML estático na fonte xmldataprovider, que é então usado para vincular controles de UI a dados usando ligação XPath.A ideia é editar um XML dinâmico (estrutura conhecida pelo desenvolvedor durante a codificação), usando a UI do WPF.

Alguém encontrou uma maneira de carregar uma string xml dinâmica (por exemplo, carregá-la de um arquivo durante o tempo de execução) e, em seguida, usar essa string xml como fonte XmlDataprovider?

Trechos de código seriam ótimos.

Atualizar:Para deixar mais claro, digamos que eu queira carregar uma string xml que recebi de uma chamada de serviço da web.Eu conheço a estrutura do xml.Então, vinculo-o aos controles da interface do usuário do WPF na janela do WPF.Como fazer isso funcionar?Todas as amostras na web definem todo o XML dentro do código XAML no nó XmlDataProvider.Não é isso que estou procurando.Quero usar uma string xml no codebehind para vincular dados aos controles da interface do usuário.

Foi útil?

Solução

Aqui está um código que usei para carregar um arquivo XML do disco e vinculá-lo a um TreeView.Removi alguns dos testes normais de concisão.O XML no exemplo é um arquivo 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;
}

Outras dicas

usando seu serviço da web, obtenha seu XML e crie um documento XML a partir dele. Você pode então definir a origem do seu xmlDataProvider como o XMLDocument obtido do serviço.

Não estou em um pc com visual studio para testá-lo, mas deve ser possível fazer isso.

As etapas são como você mencionou na sua pergunta:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top