3

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

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

代码片段会很棒。

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

4

2 回答 2

2

这是我用来从磁盘加载 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;
}
于 2008-12-27T20:15:38.287 回答
1

使用您的网络服务获取您的 XML 并从中创建一个 XML 文档,然后您可以将 xmlDataProvider 的源设置为您从服务中获得的 XMLDocument。

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

这些步骤正如您在问题中提到的那样:

1.从webservice获取XML
2. 将 XML 字符串转换为 XML 文档
3. 将 XMLDataProvider.Document 值设置为您的 XML 文档
4.将其绑定到您的控件
于 2008-09-13T08:00:45.197 回答