2010-10-01 49 views
5

我有一個ListBox,它由Silverlight 3.0中多個SelectionMode中的網格項組成。使用Silverlight獲取列表框中多個選定項目的索引

當我使用ListBox.SelectedIndex時,它只返回所選的第一個項目。

我希望能夠看到所有選定的項目,以便它將返回所有選定的項目索引,例如; 2,5和7等。

任何幫助嗎?

乾杯,

Turtlepower。

+0

你檢查是否有是名爲SelectedIndices/SelectedIndexList或類似的屬性? – 2010-10-01 03:29:14

+0

在Silverlight中的ListBox沒有SelectedIndices,但是非常感謝。 – turtlepower 2010-10-01 03:38:15

回答

8

您可以通過SelectedItems迭代,並在Items屬性找到對象,像這樣的發現所選擇的指標:

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

或者如果你喜歡LINQ:

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

謝謝Yogesh,它幾乎工作。 奇怪的是,我只有5個項目在我的列表框中,當我將它們全部返回時,我得到7個項目變爲「0,1,2,3,4,0,0,0」。爲什麼額外的三個0結束? – turtlepower 2010-10-01 03:38:45

+0

5個項目在選定的項目?你可以發佈你正在使用的代碼來「退還」嗎? – Yogesh 2010-10-01 03:41:14

+0

List selectedItemIndexes = new List (); (myListBox.SelectItems中的對象o) { selectedItemIndexes.Add(myListBox.Items.IndexOf(o)); } 是的,5項,我也只選擇了5項。奇。 – turtlepower 2010-10-01 03:42:15

相關問題