如何将下面的简单.xml绑定到uwp中的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>非常感谢
发布于 2018-09-29 03:52:31
虽然不能直接绑定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。
发布于 2018-09-29 16:02:22
我会使用xml linq将结果放入datatable中,然后绑定到表
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 Modulehttps://stackoverflow.com/questions/52561811
复制相似问题