2009-05-07 5 views
0

Est-il possible dans WPF de lier une matrice de données (table de données ou fichier XML) à un ListView?Dans WPF/Silverlight: est-il possible de lier un DataTable ou un fichier XML à un ListView?

Compte tenu de l'ensemble de données XML suivant:

<data> 
    <cols> 
    <col name="FirstName" /> 
    <col name="LastName" /> 
    <col name="Age" /> 
    </cols> 
    <rows> 
    <row> 
     <col>Huey</col> 
     <col>Freeman</col> 
     <col>10</col> 
    </row> 
    <row> 
     <col>Michael</col> 
     <col>Caesar</col> 
     <col>10</col> 
    </row> 
    <row> 
     <col>Reiley</col> 
     <col>Freeman</col> 
     <col>8</col> 
    </row> 
    <row> 
     <col>Cindy</col> 
     <col null="true" /> 
     <col>9</col> 
    </row> 
    <row> 
     <col /> 
     <col>Robert Jebediah Freeman</col> 
     <col>70</col> 
    </row> 
    </rows> 
</data> 

Est-il possible de lier ces données à un ListView?

Notez que les colonnes de données ne sont pas prédéfinies. Il pourrait de tout type et les noms varient. P/S: Je suis conscient de la DataGrid mais il est trop lourd pour l'utilisation, nous avons juste besoin d'afficher les données.

Répondre

0

Vous pouvez lier ceci à une vue de liste, mais les colonnes ne seront pas générées automatiquement. Vous devez soit créer votre propre contrôle pour le faire, soit en trouver un que quelqu'un d'autre a déjà fait.

si vous google vous trouverez toutes sortes d'articles avec et un code de w/o.

2

Vous pouvez utiliser XmlDataProvider pour cela.

XmlDataProvider data = new XmlDataProvider(); 

// you can load data from file/http/whatever 

data.Source = "... some URL ..."; 

// *OR* you can go directly against an already existing XmlDocument 

// data.Document = someXmlDocumentInstance; 

data.XPath = "/books/book"; // specific to your schema obviously 

myListView.ItemsSource = data.Data; 

Vous pouvez aussi configurer une liaison de

Binding myBinding = new Binding(); 

myBinding.Source = data; 

BindingOperations.SetBinding(myListView, ItemsControl.ItemsSourceProperty, myBinding); 

HTH

Questions connexes