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

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

Вопрос

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

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

Фрагменты кода было бы здорово.

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

Это было полезно?

Решение

Вот код, который я использовал для загрузки 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;
}

Другие советы

используя ваш веб-сервис, получите 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top