2009-09-24 6 views

Répondre

1

Un ListViewItem ne peut appartenir à plus d'un ListView en même temps, donc cette condition:

if (!lvBatch.Items.Contains(item)) 

... sera toujours vrai.

Quels critères voulez-vous utiliser pour déterminer si l'élément dans un ListView est "similaire" à un élément dans un autre? En fonction de cela, vous avez quelques options:

ListViewItem possède une propriété appelée Name qui peut être utilisée pour identifier de manière unique des éléments dans un ListView. Vous pouvez ensuite appeler Items.ContainsKey(String) pour voir si un élément existe avec ce nom.

Sinon, vous pouvez effectuer une recherche dans lvBatch pour trouver un élément avec le même texte que celui que vous essayez d'ajouter:

if (!lvBatch.Items.Cast<ListViewItem>().Any(i => i.Text == item.Text)) 

(. Vous devez jeter parce que ListViewItemCollection ne met pas en œuvre effectivement IEnumerable<ListViewItem>)

+0

Merci! C'est une solution parfaite! –

Questions connexes