我看到的每个示例都在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 |