2009-08-20 6 views
23

Même si je sais que ce n'est pas idéal - j'ai besoin de remplir un listView par programme (pour une raison quelconque).WPF ListView - comment ajouter des éléments par programme?

Je déclare mes colonnes dans le balisage:

  <ListView.View> 
       <GridView> 
        <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=Name}"/> 
        <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=Value}"/> 
       </GridView> 
      </ListView.View> 

J'ajoute les articles comme celui-ci dans le code (il est évidemment dans une boucle):

  MyData data = getDataItem(index); //< -- whatever 
      ListViewItem item = new ListViewItem(); 
      item.DataContext = data; 
      this.myListView.Items.Add(item); 

Où MyData est défini comme suit:

public class MyData 
{ 
    public string Name { get; set; } 
    public string Value { get; set; } 
} 

Les articles sont ajoutés (je peux voir les lignes) mais je ne vois aucun contenu.

Quelqu'un a-t-il des indices?

Toute aide appréciée!

Répondre

30

Il agit en modifiant le code:

 MyData data = getDataItem(index); //< -- whatever 
     this.myListView.Items.Add(data); 

Maintenant, il semble évident, mais ... allez comprendre!

+0

merci pour la solution! a travaillé comme charme :) – SolidSnake

+0

hey man, vous êtes les bienvenus - heureux qu'il a également aidé quelqu'un d'autre :) – JohnIdol

+0

Savez-vous aussi comment résoudre le même problème, ayant une liste générale, qui peut prendre différents objets, avec des propriétés différentes ? – Markus

Questions connexes