UWP GridView. XML привязка данных [VB.NET] - - PullRequest
0 голосов
/ 28 сентября 2018

Как я могу связать ниже простой .xml с gridview / listview в uwp?

<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 голосов
/ 29 сентября 2018

Я бы поместил результаты в таблицу данных, используя 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
0 голосов
/ 28 сентября 2018

Хотя невозможно напрямую связать файл XML, вы можете сначала десериализовать этот XML в простые классы, которые затем можете связать как обычные данные.Простой класс, как:

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

Должно быть все, что вам нужно.Вы можете десериализовать файл, вручную просматривая XML-документ с помощью одного из многих подходов .NET, или вы можете десериализовать автоматически, используя атрибуты, как показано в этом ответе SO .

ВВ итоге вы получите коллекцию экземпляров Tool, которую вы будете привязывать к ItemsSource вашего элемента управления:

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

Для правильного отображения вам также потребуется использовать ItemTemplate.Подробнее об этом.Есть также много уроков по этому вопросу, например, здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...