Getting the index of multiple selected items in a listbox using Silverlight

turtlepower picture turtlepower · Oct 1, 2010 · Viewed 13.1k times · Source

I have a ListBox which is made up of Grid Items in Multiple SelectionMode in Silverlight 3.0.

When I use ListBox.SelectedIndex it only returns the first item which is selected.

I would like to be able see all of the selected items such that it would return all of the selected item indexes' such as; 2, 5, and 7, etc.

Any help?

Cheers,

Turtlepower.

Answer

Yogesh picture Yogesh · Oct 1, 2010

You can find the selected indexes by iterating through SelectedItems and finding the objects in the Items property, like this:

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

Or if you prefer linq:

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