UWP GridView .xml数据绑定[VB.NET]-

时间:2018-09-28 19:45:22

标签: xml vb.net xaml uwp

如何在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>

非常感谢您

2 个答案:

答案 0 :(得分:0)

虽然不可能直接绑定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

答案 1 :(得分:0)

我将使用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