首页 / 知识

关于wpf:如何在后面的代码中将xml字符串加载到绑定到XML的XPath的数据绑定UI控件中?

2023-04-15 04:52:00

关于wpf:如何在后面的代码中将xml字符串加载到绑定到XML的XPath的数据绑定UI控件中?

How to load an xml string in the code behind to databound UI controls that bind to the XPath of the XML?

我看到的每个示例都在xmldataprovider源中使用静态XML,然后将其用于使用XPath绑定对UI控件进行数据绑定。
想法是使用WPF UI编辑动态XML(开发人员在编码过程中已知的结构)。

有没有人找到一种方法来加载动态xml字符串(例如,在运行时从文件中加载它),然后将该xml字符串用作XmlDataprovider源?

代码段会很棒。

更新:为了更加清楚,
假设我要加载从Web服务调用中收到的xml字符串。 我知道xml的结构。 因此,我将其数据绑定到WPF窗口上的WPF UI控件。 如何使这项工作? Web上的所有示例都在XmlDataProvider节点的XAML代码中定义了整个XML。 这不是我想要的。 我想在代码背后使用xml字符串将数据绑定到UI控件。


这是一些我用来从磁盘加载XML文件并将其绑定到TreeView的代码。 为了简洁起见,我删除了一些常规测试。 示例中的XML是OPML文件。

1
2
3
4
5
6
7
8
9
10
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;
}

使用Web服务获取XML并从中创建XML文档,然后可以将xmlDataProvider的Source设置为从服务获取的XMLDocument。

我不是在带Visual Studio的PC上对其进行测试,但是您应该可以这样做。

正如您在问题中提到的那样:

1
2
3
4
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

控件绑定加载字符串

最新内容

相关内容

猜你喜欢