Généralement, lorsque quelqu'un parcourt des éléments de la liste, il cherche à déterminer s'ils sont sélectionnés ou non. Si c'est le cas, essayez d'utiliser listBoxObject.SelectedItems au lieu de listBoxObject.Items. Cela ne renverra que les éléments sélectionnés.
Pour autant que je sache, il n'y a pas d'objet ListBoxItem. Vous devrez utiliser l'objet pour chaque élément (qui est ce que seletecteditems et items renvoie). L'objet représente la valeur de l'élément, donc utilisez-le en conséquence (ce qui signifie que si l'objet est une chaîne, utilisez-le comme une chaîne, mais si un objet est un objet complexe, utilisez-le comme tel).
Exemple de code:
foreach (Object listBoxItem in listBoxObject.SelectedItems)
{
//Use as object or cast to a more specific type of object.
}
Et si vous savez quel objet sera toujours vous pouvez le jeter dans la boucle foreach. (Attention: Si vous vous trompez, une exception sera émise). Cet exemple est si seules les chaînes sont entrées dans la liste.
foreach (String listBoxItem in listBoxObject.SelectedItems)
{
//Use as String. It has already been cast.
}
Pour Winforms, utilisez des classes dans l'espace de noms 'System.Windows.Forms'. Vous pouvez trouver utile si vous supprimez toutes les instructions utilisant 'System.Windows.Controls' dans votre projet. – kbrimington
Je n'ai pas accès à .NET 4 pour le moment, mais je pense que vous pourriez utiliser l'extension .Cast() sur .Items pour lancer une liste si vous pouvez guarter que tous les objets sont du même type T –