void ShiftItemsPositions (int from, int to, bool forward)
{
if (forward) {
for (int i = to + 1; i > from; i--) {
reordered_items_indices [i] = reordered_items_indices [i - 1];
ListViewItem item = items [reordered_items_indices [i]];
item.Invalidate ();
item.DisplayIndex = i;
item.Invalidate ();
}
} else {
for (int i = from - 1; i < to; i++) {
reordered_items_indices [i] = reordered_items_indices [i + 1];
ListViewItem item = items [reordered_items_indices [i]];
item.Invalidate ();
item.DisplayIndex = i;
item.Invalidate ();
}
}
}