2010-05-12 5 views
0

Je souhaite afficher les données d'un fichier xml dans la grille de données silverlight. Im en utilisant le code ci-dessous, mais cela ne fonctionne pas.Veuillez aider.Afficher les données xml dans silveragrid dataagrid, vb.net

Mon code vb.net:

système Importations Les importations System.Collections.Generic Importations System.Linq Importations System.Windows Importations System.Windows.Controls Importations System.Xml.Linq

Namespace SilverlightApplication1 classe partielle public page Hérite 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 

End Namespace

Répondre

0

Je suis tellement confus par ce code ... ce qui est probablement la raison pour laquelle il ne fonctionne pas.

Tout d'abord, lorsque vous définissez ItemsSource, vous appelez GetReport() sans paramètre. GetStatusReport() n'est jamais appelé, même s'il effectue le levage XML. À l'intérieur de GetStatusReport, vous renvoyez statusReport, qui est une liste vide ... et vous ne faites jamais rien avec le rapport, qui est la requête réelle. Dans la requête, vous appelez GetStatus, qui n'est pas défini, bien que je pense qu'il devrait s'agir de GetReport.

Arghhh ... avec tout cela, je suppose que vous voulez ré-écrire tout ce code pour être quelque chose comme ceci:

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 

Au-delà de ces corrections, je ne peux pas vous dire si elle est correct ou pas ... Où est-il défaillant?