la sélection de Plusieurs lignes d'éléments dans une liste
J'ai un treeview qui est dans la vue de détail. listview est rempli avec les éléments et les sous-items qui sont dans la paire de 4 lignes sont liés. J'ai mis Name
de la propriété de chacune des lignes de cette 4 éléments de même.
Ce que je cherche, c'est quand l'utilisateur sélectionne une ligne, toutes les 4 lignes qui ont les mêmes Nom propety être sélectionné (hilighted) automatiquement.
Ce que j'ai fait jusqu'à présent est en-dessous, mais il ne compile pas!
private void resultSheet_SelectedIndexChanged(object sender, EventArgs e)
{
string name = resultSheet.SelectedItems[0].Name.ToString();
ListView.ListViewItemCollection items = new ListView.ListViewItemCollection(resultSheet);
foreach (ListViewItem item in resultSheet.Items)
{
if (item.Name.ToString() == name)
{
items.Add(item);
}
}
resultSheet.SelectedItems = items; //Does not compile
}
- ListView.SelectedItems est en lecture seule.
InformationsquelleAutor Saeid Yazdani | 2011-12-10
Vous devez vous connecter pour publier un commentaire.
ListView.SelectedItems est en lecture seule.
Modifier: Selon votre commentaire sur l'autre réponse: assurez-vous que
SelectedItems.Count >= 1
avant d'accéder à l'élément à l'indice 0, car "Aucune sélection" est aussi un état possible. Lorsque vous sélectionnez un autre élément, la liste ne désigne pas le SelectedItem avant de choisir le nouveau pointSi vous voulez éviter les événements SelectedIndexChanged, essayez Robert Minuterie-ListView approche ou cette Application.Inactif approche(VB.NET mais facile à convertir), ce qui est utilisé par ObjectListView sous le capot pour éviter de multiples événements de déclenchement.
Il suffit de changer votre méthode de cette façon:
Edit: Ou si vous préférez, LINQ, faites comme ceci:
InvalidArgument=Value of '0' is not valid for 'index'
pour lastring name = resultSheet.SelectedItems[0].Name;
ligne. l'esprit de corriger ça aussi ?!