如何在后面的代码中将xml字符串加载到绑定到XML的XPath的数据绑定UI控件中?
时间:2020-03-05 18:52:37 来源:igfitidea点击:
我看到的每个示例都在xmldataprovider源中使用静态XML,然后将其用于使用XPath绑定对UI控件进行数据绑定。
想法是使用WPF UI编辑动态XML(编码过程中开发人员已知的结构)。
有没有人找到一种方法来加载动态xml字符串(例如,在运行时从文件中加载它),然后将该xml字符串用作XmlDataprovider源?
代码段会很棒。
更新:为了更清楚一点,
假设我要加载从Web服务调用中收到的xml字符串。我知道xml的结构。因此,我将其数据绑定到WPF窗口上的WPF UI控件。如何使这项工作? Web上的所有示例都在XmlDataProvider节点的XAML代码中定义了整个XML。这不是我想要的。我想在代码背后使用xml字符串将其数据绑定到UI控件。
解决方案
回答
使用Web服务获取XML并从中创建XML文档,然后可以将xmlDataProvider的Source设置为从服务获取的XMLDocument。
我不是在带Visual Studio的PC上对其进行测试,但是我们应该可以这样做。
步骤如我们在问题中提到的那样:
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
回答
这是一些我用来从磁盘加载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; }