Bonjour
Oui, tu peux
Il faut utiliser la propriété VirtualMode de la ListView
Il faut lier ta ListView avec une List de type générique et implémenter l'évènement RetrieveVirtualItem
Petit exemple pris sur ce site mais j'ai perdu le lien [Que l'auteur me pardonne :-(]
private
List<Size> Taille= newList<Size>();
// Initialisation de la collection Taille avec 10.000 items
for (int i = 0; i < 10000; i++)
{
Taille.Add(newSize( i.ToString(), i.ToString()));
}// Initialisation du listview pour utiliser le mode virtuel
lvVirtuel.VirtualMode = true;
lvVirtuel.VirtualListSize = Taille.Count; // Nombre d'élément du Listview (donc ici 10.000)
lvVirtuel.RetrieveVirtualItem += newRetrieveVirtualItemEventHandler(lvVirtuel_RetrieveVirtualItem);
}
public
void lvVirtuel_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
// ici l'évènement nous demande l'élément dont l'ID sera : e.ItemIndex
ListViewItem item = newListViewItem(Taille[e.ItemIndex].Width);
item.SubItems.Add(Taille[e.ItemIndex].Height);
System.Diagnostics.Debug.Print("Chargement de l'item nø{0}, {1} {2}",
e.ItemIndex, Taille[e.ItemIndex].Width, Taille[e.ItemIndex].Height);// On le retourne dans e.Item
e.Item = item;
}
The
Vengor