2010-11-15 4 views
0

Hey, J'ai un ListView avec des colonnes multiples. Je souhaite associer des valeurs codées en dur à l'aide d'une construction xaml telle que ListViewItem, mais je ne peux pas déterminer comment spécifier plusieurs colonnes de données fixes. Par exemple, dans la grille ci-dessous, j'aimerais voir deux colonnes, 'Animal' et 'IQ', et pré-remplir les données pour les deux colonnes, mais le code affiché met toutes les colonnes à la même valeur.Comment spécifier des données codées en dur pour une ListView WPF à plusieurs colonnes?

<ListView> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="Animal" /> 
      <GridViewColumn Header="IQ" /> 
     </GridView> 
    </ListView.View> 
    <ListViewItem Content="Pig"/> 
    <ListViewItem Content="Dog"/> 
</ListView> 

BTW: Ceci est pour un écran d'échantillon simple. En tant que tel, je ne veux pas vraiment lier par programmation aux données.

Merci d'avance.
Dave.

Répondre

0

Vous ne savez pas comment procéder de manière déclarative dans XAML, mais si vous ne souhaitez pas lier des données au contrôle, vous pouvez ajouter par programme les éléments sur le code-behind.

this.AnimalsList.Items.Add(new ListViewItem { Content = "Pig" }); 
this.AnimalsList.Items.Add(new ListViewItem { Content = "Dog" }); 
0

Juste au cas où quelqu'un est toujours à la recherche d'une réponse; la première réponse est incorrecte et imprimera toujours la même valeur dans chaque colonne, tout comme l'exemple XAML. Cela fera l'affaire:

<ListView> 
<ListView.View> 
    <GridView> 
     <GridViewColumn Header="Animal" DisplayMemberBinding="{Binding Animal}" /> 
     <GridViewColumn Header="IQ" DisplayMemberBinding="{Binding IQ}" /> 
    </GridView> 
</ListView.View> 
<ListViewItem> 
    <local:Animals Animal="Pig" IQ="70" /> 
    <local:Animals Animal="Dog" IQ="60" /> 
    <local:Animals Animal="Frog" IQ="30" /> 
</ListViewItem> 

Cependant, vous avez besoin d'une classe comme ça, je ne pense pas que cela puisse être fait avec pur XAML:

public class Animals 
{ 
    public string Animal { get; set; } 
    public int IQ { get; set; } 
} 
Questions connexes