2010-10-01 17 views
5

Tengo un ListBox que está compuesto de elementos de cuadrícula en Multiple SelectionMode en Silverlight 3.0.Obteniendo el índice de múltiples elementos seleccionados en un cuadro de lista usando Silverlight

Cuando uso ListBox.SelectedIndex, solo devuelve el primer elemento que se selecciona.

Me gustaría poder ver todos los elementos seleccionados de manera que devuelva todos los índices de elementos seleccionados, como; 2, 5 y 7, etc.

¿Alguna ayuda?

Cheers,

Turtlepower.

+0

¿verificó si había es una propiedad llamada SelectedIndices/SelectedIndexList o similar? –

+0

ListBox en Silverlight no tiene SelectedIndices, pero gracias de todos modos. – turtlepower

Respuesta

8

Puede encontrar los índices seleccionados por iteración a través de SelectedItems y la búsqueda de los objetos en la propiedad Items, así:

List<int> selectedItemIndexes = new List<int>(); 
foreach (object o in listBox.SelectedItems) 
    selectedItemIndexes.Add(listBox.Items.IndexOf(o)); 

O si lo prefiere LINQ:

List<int> selectedItemIndexes = (from object o in listBox.SelectedItems select listBox.Items.IndexOf(o)).ToList(); 
+1

Gracias, Yogesh, está casi funcionando. Extrañamente, tengo solo 5 elementos en mi cuadro de lista y cuando los devuelvo a todos, obtengo 7 elementos que dicen "0, 1, 2, 3, 4, 0, 0, 0". ¿Por qué los tres 0 adicionales al final? – turtlepower

+0

5 artículos como en los artículos seleccionados? ¿Puedes publicar el código que estás utilizando para "devolverlos"? – Yogesh

+0

Lista selectedItemIndexes = new List (); foreach (objeto o en myListBox.SelectedItems) { selectedItemIndexes.Add (myListBox.Items.IndexOf (o)); } Sí, 5 artículos y solo selecciono 5 artículos. Impar. – turtlepower

Cuestiones relacionadas