У меня есть 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)
, но я могу заставить его работать только с перемещением одного элемента.
Что было бы хорошим алгоритмом?