如何在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>
非常感谢您
答案 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