【问题标题】:Binding raw XML to datagrid in WPF在 WPF 中将原始 XML 绑定到数据网格
【发布时间】:2011-05-22 08:08:45
【问题描述】:

我想将原始 xml 文件绑定到数据网格并使用 C# 在 WPF 表单上显示它。我打算使用数据集来存储我的 xml,然后将数据集绑定到数据网格。我的 xml 看起来像这样

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<games>
  <game id="123456" name="501">
    <player id="1">
      <name>john</name>
      <score>495</score>
      <movesLeft>15</movesLeft>
      <won>No</won>
      <completed>uncompleted</completed>
    </player>
    <player id="2">
      <name>
         konj
      </name>
      <score>501</score>
      <movesLeft>15</movesLeft>
      <won>No</won>
      <completed>uncompleted</completed>
    </player>
  </game>
</games>

我计划使用两个数据网格,一个用于,一个用于 列 id、name、movesLeft、won、completed 绑定到元素

【问题讨论】:

标签: c# wpf xml datagrid dataset


【解决方案1】:

最好的起点是 XmlTextReader 类 (System.Xml)

我为此找到的最佳资源直接来自 MS XmlTextReader Link 它允许您读取 xml 文件并通过元素类型/名称/等解析它。

希望这会有所帮助。

从那里,您可以照常将它们解析为 DataTables,然后将它们绑定到网格,也照常。如果你也需要这方面的信息,请告诉我

【讨论】:

  • 所以你说我应该使用 DataTables 而不是 DataSet?该链接是关于阅读 XML 并将其写入控制台的。我想知道有没有办法自动将 XML 绑定到数据网格,并通过为它们编写 XPath 查询来定义列。
  • 啊,在这种情况下...这里有另一个链接可能会有所帮助:csharphelp.com/2006/10/…
  • 谢谢。我可以在那里使用 XPath 吗?以及如何?
  • 我可能错了,但我相信 XPath 仅在用于绑定到 XMLNode 时才相关。这里的这个话题可能对你有帮助:stackoverflow.com/questions/2199721/…
  • 我尝试了您链接中的说明。像这个 DataSet ds = new DataSet(); Uri DataPath = new Uri("c:\\Data\\xmlfile1.xml", UriKind.Absolute); ds.ReadXml(DataPath.OriginalString); dataGrid1.DataSource = ds; dataGrid1.DataBind();但 dataGrid1 没有属性 DataSource 或 DataBind。 DataContext 代替 DataSource 好吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 2011-01-31
  • 2017-05-14
  • 2011-12-13
  • 2011-10-26
  • 2015-08-07
  • 2012-11-21
相关资源
最近更新 更多