Как загрузить строку xml в коде для элементов управления пользовательского интерфейса с привязкой к данным, которые привязаны к XPath XML?

Каждый пример, который я видел, использует статический XML в источнике xmldataprovider, который затем используется для привязки элементов управления пользовательского интерфейса с помощью привязки XPath. Идея состоит в том, чтобы отредактировать динамический XML (структура, известная разработчику во время кодирования), используя пользовательский интерфейс WPF.

Кто-нибудь нашел способ загрузить динамическую строку xml (например, загрузить ее из файла во время выполнения), а затем использовать эту строку xml в качестве источника XmlDataprovider?

Фрагменты кода были бы отличными.

Обновление: чтобы было понятнее, скажем, я хочу загрузить строку xml, полученную при вызове веб-службы. Я знаю структуру xml. Поэтому я привязываю его к элементам управления WPF UI в окне WPF. Как заставить это работать? Все образцы в Интернете определяют весь XML внутри кода XAML в узле XmlDataProvider. Это не то, что я ищу. Я хочу использовать строку xml в выделенном коде для привязки данных к элементам управления пользовательского интерфейса.


person Vin    schedule 13.09.2008    source источник
comment
Ваш вопрос не очень ясен.   -  person Esteban Araya    schedule 13.09.2008


Ответы (2)


Вот код, который я использовал для загрузки XML-файла с диска и привязки его к TreeView. Я удалил некоторые из обычных тестов на лаконичность. XML в примере - это файл 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;
}
person Paul Osterhout    schedule 27.12.2008

используя свой веб-сервис, получите свой XML и создайте из него XML-документ. Затем вы можете установить Источник своего xmlDataProvider на XMLDocument, который вы получили от службы.

Я не нахожусь на компьютере с Visual Studio, чтобы протестировать его, но вы можете это сделать.

Шаги, как вы упомянули в своем вопросе:

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
person Mauro    schedule 13.09.2008