我正在调试一个同事程序,并在WPF中遇到了这个问题.
看起来listBoxName.SelectedItems按用户从界面中选择项目的顺序返回所选项目的列表.这是一个问题,因为我需要保留项目的实际顺序.
例:
列表框是扩展选择模式,我的列表框包含一些东西:runfirst,runsecond,runthird
用户可以选择从列表框中选择要运行的内容.他们选择了runthird然后runfirst.这会导致runthird出现在列表的顶部,然后runfirst.我想我可以在运行foreach之前对列表进行排序,但我想知道是否有更简单的方法.
谢谢
我所做的是使用LINQ以索引顺序返回所选项目.它采用VB.Net语法,但它很容易修复C#.
Dim selecteditems = From selecteditem As ListBoxItem In ListBox1.SelectedItems _
Select selecteditem _
Order By ListBox1.Items.IndexOf(selecteditem)
Run Code Online (Sandbox Code Playgroud)
是的,我最终迭代了列表框中的所有项目,然后使用包含检查它是否在选定的项目中,如下所示
foreach (<yourobject> item in listForSelection.Items)
{
if (listForSelection.SelectedItems.Contains(item))
{
\\code here
}
}
Run Code Online (Sandbox Code Playgroud)
感谢大家的帮助
| 归档时间: |
|
| 查看次数: |
6779 次 |
| 最近记录: |