2010-08-17 4 views

Répondre

0

Désolé, mais ce n'est pas (facilement) possible.

A ListView a une liste de ListViewItem s, où chacun a une liste de ListViewSubItem s (et de le rendre un peu plus complexe au premier endroit, la première ListViewSubItem est le même que lui-même ListViewItem).

Donc, si vous voulez remplir une colonne par colonne ListView vous devez d'abord ajouter les ListViewItem s au ListView pour toutes les valeurs que vous voulez dans la première colonne.

Ensuite, vous parcourez le ListView.Items et appelez tous les ListViewItem.Subitems.Add pour remplir la colonne suivante. Cela doit être fait pour chaque colonne que vous aimez remplir.

Si vous souhaitez remplir les valeurs de colonne dans un autre ordre, puis de gauche à droite, vous devriez jeter un oeil dans le DisplayIndex du ColumnHeader au sein du ListView.Columns.

Quelques exemples de code:

// Some values 
var someValues = Enumerable.Range(1, 10); 

// Fill up the first column 
foreach (var item in someValues) 
{ 
    listView.Items.Add("0." + item); 
} 

// Run for each column in the listView (the first is already filled up) 
foreach (ColumnHeader column in listView.Columns.Cast<ColumnHeader>().Skip(1)) 
{ 
    // Get the value and the index for which row the value should be 
    foreach (var item in someValues.Select((Value, Index) => new { Value, Index })) 
    { 
     // Add the value to the given row, thous leading to be added as new column 
     listView.Items[item.Index].SubItems.Add(column.Index + "." + item.Value); 
    } 
} 
+0

merci pour votre réponse merc – mosa

Questions connexes