Отображение данных XML в сетке данных Silverlight, vb.net - PullRequest
0 голосов
/ 12 мая 2010

Я хочу отобразить данные XML-файла в сетке данных silverlight. Я использую приведенный ниже код, но он не работает. Пожалуйста, помогите.

Мой код vb.net:

Система импорта Imports System.Collections.Generic Импортирует System.Linq Импортирует System.Windows Импортирует System.Windows.Controls Импорт System.Xml.Linq

Пространство имен SilverlightApplication1 Публичная частичная страница класса Наследует UserControl Public Sub New () InitializeComponent () End Sub

    Private Sub Page_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs) 
        DataGrid1.ItemsSource = GetReport() 
    End Sub 

    Public Function GetStatusReport() As List(Of Table) 
        Dim statusReport As New List(Of Table)() 

        Dim doc As XElement = XElement.Load("Data/Report.xml") 

        report = (From row In doc.Elements() _ 
            Select GetStatus(row)).ToList() 

        Return statusReport 
    End Function 

    Private Function GetReport(ByVal row As XElement) As Table
        Dim s As New Table() 
        s.JobID= row.Attribute("ID").Value 
        s.VenueName= row.Attribute("Name").Value) 
        Return s 
    End Function 
End Class 

Конечное пространство имен

1 Ответ

0 голосов
/ 15 мая 2010

Я так запутался в этом коде ... возможно, поэтому он не работает.

Во-первых, когда вы устанавливаете ItemsSource, вы вызываете GetReport () без параметра. GetStatusReport () никогда не вызывается, даже если он поднимает XML. Внутри GetStatusReport вы возвращаете statusReport, который является пустым списком ... и вы ничего не делаете с отчетом, который является фактическим запросом. Внутри запроса вы вызываете GetStatus, который не определен, хотя я считаю, что это должен быть GetReport.

Аааа ... со всем этим, я думаю, вы хотите переписать весь этот код, чтобы он был примерно таким:

    Private Sub Page_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs) 
        DataGrid1.ItemsSource = GetStatusReport() 
    End Sub 

    Public Function GetStatusReport() As List(Of Table) 
        Dim statusReport As New List(Of Table)() 

        Dim doc As XElement = XElement.Load("Data/Report.xml") 

        statusReport = (From row In doc.Elements() _ 
            Select GetReport(row)).ToList() 

        Return statusReport 
    End Function 

    Private Function GetReport(ByVal row As XElement) As Table
        Dim s As New Table() 
        s.JobID= row.Attribute("ID").Value 
        s.VenueName= row.Attribute("Name").Value) 
        Return s 
    End Function 
End Class 

Помимо этих исправлений, я не могу сказать вам, если это правильно или нет ... Где это терпит неудачу?

...