2009-08-26 14 views
0

Ich versuche, einen mehrspaltigen Listview in XAML (Visual Studio 2008) zu definieren und dann Elemente, um es in C# hinzufügen. Ich habe viele Beiträge zu diesem Thema gesehen und die verschiedenen Methoden ausprobiert, aber ich bekomme Fehler.mehrspaltigen Listview in WPF - Fehler

mein XAML-Code ist unten, VS nicht Flagge Fehler auf sie.

<ListView Height="234.522" Name="chartListView" Width="266.337"> 
    <ListView.View> 
    <GridView> 
     <GridViewColumn Header="Name" Width="70"/> 
     <GridViewColumn Header="ID" /> 
    </GridView> 
    </ListView.View> 
</ListView> 

zu versuchen und Daten zu den Spalten hinzufügen, ich eine Taste erstellt und den Code in der Schaltfläche klicken setzen:

private void button3_Click(object sender, RoutedEventArgs e) 
    { 
     chartListView.Items.Add("item1").SubItems.Add("item2"); 
    } 

der Fehler, der auf Unteroptionen zeigt ist:

'int' enthält keine Definition für 'SubItems' und es wurde keine Erweiterungsmethode 'SubItems' gefunden, die ein erstes Argument vom Typ 'int' akzeptiert (fehlt eine using-Direktive oder eine Assembly-Referenz?) D: \ devel \ VS \ pchart \ pchart \ pchart \ Window1.xaml.cs

Auch habe ich versucht, an einigen anderen Stellen auf Listview-Steuerelemente suchen wie

ListView - Inserting Items

ich den Code dort versucht:

ListViewItem Artikel = new ListViewItem(); item.Text = anInspector.getInspectorName(). ToString();

und bekam fast den gleichen Fehler auf item.Text, wie ich mit SubItems tat. Gibt es etwas früher in meinem Code oder eine Projektdefinition, die ich vermisse?

Vielen Dank für jede Hilfe

Antwort

3

Es gibt so etwas wie „Unterelemente“ in WPF ListView (vielleicht sind Sie es mit dem Windows verwirrend Forms Listview) Nr. Die Items-Eigenschaft gibt eine Sammlung von object s trotzdem zurück, und object hat keine SubItems Eigenschaft. Eigentlich kann jedes Element in der Listview mehrere Eigenschaften haben, und Sie angeben, welche Sie mit dem DisplayMemberBinding Eigenschaft angezeigt werden soll:

XAML

<ListView Height="234.522" Name="chartListView" Width="266.337"> 
    <ListView.View> 
    <GridView> 
     <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="70"/> 
     <GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}" /> 
    </GridView> 
    </ListView.View> 
</ListView> 

C#:

private void button3_Click(object sender, RoutedEventArgs e) 
{ 
    chartListView.Items.Add(new { Name = "test1", ID = "test2" }); 
} 

(es müssen keine anonymen Objekte sein, natürlich können Sie auch benannte Klassen verwenden ...)

+0

hey danke, genau wonach ich gesucht habe . – Will