【问题标题】:UWP GridView .xml data binding [VB.NET]-UWP GridView .xml 数据绑定 [VB.NET]-
【发布时间】:2018-09-28 19:45:22
【问题描述】:

如何在 uwp 中将下面的简单 .xml 绑定到 gridview/listview?

<TOOLS>

  <TOOL>
    <ID>0001</ID>
    <CATEGORY>PIPING</CATEGORY>
    <NAME>Straight Pipe Under internal Pressure (ASME B31.3 par.304.1.2).</NAME>
    <HINT>HOOP STRESS, CIRCUMFERENTIAL STRESS</HINT>
  </TOOL>

  <TOOL>
    <ID>0002</ID>
    <CATEGORY>PIPING</CATEGORY>
    <NAME>Mitered Segments of Pipe (ASME B31.3 par.304.2.3).</NAME>
    <HINT></HINT>
  </TOOL>

</TOOLS>

非常感谢

【问题讨论】:

    标签: xml vb.net xaml uwp


    【解决方案1】:

    虽然无法直接绑定 XML 文件,但您可以先将此 XML 反序列化为普通类,然后将其绑定为普通数据。简单的类如:

    class Tool
    {
       public int Id {get;set;}
       public string Category {get;set;}
       public string Name {get;set;}
    }
    

    应该是你所需要的。您可以通过 .NET 提供的多种方法之一手动浏览 XML 文档来反序列化文件,也可以使用 this SO answer 中看到的属性自动反序列化。

    最后你会得到Tool 的实例集合,你将绑定到你的控件的ItemsSource

    <GridView ItemsSource="{x:Bind Data, Mode=OneWay}" />
    

    要正确显示它,您还需要使用ItemTemplate。有关此的更多信息。这方面也有很多教程,比如here

    【讨论】:

      【解决方案2】:

      我会使用 xml linq 将结果放入数据表中,然后绑定到表中

      Imports System.Xml
      Imports System.Xml.Linq
      Imports System.Data
      
      Module Module1
          Const FILENAME As String = "c:\temp\test.xml"
          Sub Main()
              Dim dt As New DataTable
              dt.Columns.Add("ID", GetType(String))
              dt.Columns.Add("CATEGORY", GetType(String))
              dt.Columns.Add("NAME", GetType(String))
              dt.Columns.Add("HINT", GetType(String))
      
              Dim doc As XDocument = XDocument.Load(FILENAME)
      
              For Each tool In doc.Descendants("TOOL")
                  dt.Rows.Add(New Object() {tool.Element("ID").Value, tool.Element("CATEGORY").Value, tool.Element("NAME").Value, tool.Element("HINT").Value})
              Next tool
      
          End Sub
      
      End Module
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-30
        • 2018-04-13
        • 2010-12-31
        • 2017-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多