2009-05-07 16 views
0

Ist es in WPF möglich, eine Data Matrix (Datentabelle oder eine XML-Datei) an ein ListView zu binden?In WPF/Silverlight: Ist es möglich, eine DataTable oder eine XML-Datei an eine ListView zu binden?

den folgenden XML-Datensatz Gegeben:

<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> 

Ist es möglich, diese Daten zu einem Listview zu binden?

Beachten Sie, dass die Datenspalten nicht vordefiniert sind. Es könnte von jeder Art sein und die Namen variieren.

P/S: Ich kenne das DataGrid, aber es ist zu schwer für die Verwendung, wir müssen nur die Daten anzeigen.

Antwort

0

Sie können dies an eine Listenansicht binden, die Spalten werden jedoch nicht automatisch generiert. Sie müssen entweder Ihr eigenes Steuerelement erstellen, das dies tut, oder ein anderes, das jemand anderes bereits getan hat. Wenn Sie google haben, finden Sie alle Arten von Artikeln mit und ohne Code.

2

Sie können den XmlDataProvider dafür verwenden.

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; 

Sie können auch Setup eine Bindung

Binding myBinding = new Binding(); 

myBinding.Source = data; 

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

HTH

Verwandte Themen