【问题标题】:Getting the index of multiple selected items in a listbox using Silverlight使用 Silverlight 获取列表框中多个选定项目的索引
【发布时间】:2010-10-01 03:14:31
【问题描述】:

我有一个 ListBox,它由 Silverlight 3.0 中 Multiple SelectionMode 中的网格项组成。

当我使用 ListBox.SelectedIndex 时,它只返回第一个被选中的项目。

我希望能够查看所有选定的项目,以便返回所有选定的项目索引,例如; 2、5、7等。

有什么帮助吗?

干杯,

乌龟力量。

【问题讨论】:

  • 你检查是否有一个名为 SelectedIndices/SelectedIndexList 或类似的属性?
  • Silverlight 中的 ListBox 没有 SelectedIndices ,但还是谢谢你。

标签: c# silverlight listbox listboxitem


【解决方案1】:

您可以通过遍历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();

【讨论】:

  • 谢谢 Yogesh,它几乎可以工作了。奇怪的是,我的列表框中只有 5 个项目,当我将它们全部归还时,我得到 7 个项目,它们分别是“0、1、2、3、4、0、0、0”。为什么最后多了三个 0?
  • 5 项与选定项相同?你能发布你用来“退货”的代码吗?
  • List selectedItemIndexes = new List(); foreach(myListBox.SelectedItems 中的对象 o){ selectedItemIndexes.Add(myListBox.Items.IndexOf(o));是的,5 个项目,我也只选择 5 个项目。奇数。
  • 啊,当我在调试器中打开 List 集合时,我看到所选项目后面有一个 0 的尾端。
  • 更新:当我实际返回 selectedItemsIndexes[i] 时似乎没有这样做,一定只是一个落后的事情。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
相关资源
最近更新 更多