【发布时间】:2018-11-20 07:12:50
【问题描述】:
我有一个ListBox,它有一个ObservableCollection<string> 作为它的DataSource。现在我希望能够向上或向下移动每个选定的项目。因此,如果列表看起来像这样(所选项目以 * 为前缀):
Item 1
* Item 2
Item 3
* Item 4
* Item 5
* Item 6
Item 7
我希望它在向下移动一次后看起来像这样:
Item 1
Item 3
* Item 2
Item 7
* Item 4
* Item 5
* Item 6
或者上移一次后的这个:
* Item 2
Item 1
* Item 4
* Item 5
* Item 6
Item 3
Item 7
我已经偶然发现了ObservableCollection<T>.Move(int oldIndex, int newIndex),但我只能让它与移动单个项目一起工作。
什么是好的算法?
【问题讨论】:
-
您是否尝试过使用 for 循环?向上移动时,让
i从0运行到Count,向下移动时,让它向后运行