Как загрузить строку XML в коде для элементов управления пользовательского интерфейса с привязкой к данным, которые привязаны к XPath XML? - PullRequest
3 голосов
/ 13 сентября 2008

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 27 декабря 2008

Вот некоторый код, который я использовал, чтобы загрузить файл 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;
}
1 голос
/ 13 сентября 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
...