У меня есть таблица с элементами, которые отображаются по их SortOrder.Сортировки SortOrders не очень хорошо увеличиваются, значения пропускаются от 1 до 100.То, что я хочу сделать, это переключить значения SortOrder двух элементов, которые находятся ближе всего друг к другу, не обязательно зная , насколько близко друг к другу они находятся.Например:
ItemX.SortOrder = 5;
ItemY.SortOrder = 26;
Предположим, что ни у одного элемента нет порядка сортировки между 5-26.
Мой код должен изменить это на:
ItemX.SortOrder = 26;
ItemY.SortOrder = 5;
По какой-то причинемой код переключает SortOrders со случайными элементами, например:
ItemX.SortOrder = 5;
ItemY.SortOrder = 26;
ItemZ.SortOrder = 34;
Становится:
ItemX.SortOrder = 34;
ItemY.SortOrder = 26;
ItemZ.SortOrder = 5;
Я думаю, это потому, что результаты моего запроса не упорядочены так, как япредставляя их.Вот мой код запроса.Если что-то еще нужно, просто дайте мне знать.
itemToSwitch = DataSource.Items.Where(item => item.SortOrder > currentItem.SortOrder).First();
int? next = itemToSwitch.SortOrder;
int? previous = currentItem.SortOrder;
currentItem.SortOrder = next;
itemToSwitch.SortOrder = previous;
Извините, если мой вопрос трудно прочитать или перемешать.Я пытаюсь быть максимально ясным.