Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как поменять порядок элементов, в ListView 
V
    Опции темы
Freak_FB
  Дата 15.12.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: 2
Всего: 4



В моём ListView-контроле установлен стиль отображения Details. Есть ли какая-нибудь возможность установить порядок следования элементов (элементов 7, введены мною, и добавляться/удаляться не будут). То есть, например, выбрав какой либо элемент из списка, можно было бы его переместить вверх или вниз на позицию.


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
Freak_FB
  Дата 17.12.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: 2
Всего: 4



Попробовал решать проблему сам. Имею функцию для поднятия выделенного элемента вверх по списку:
Код

ListViewItem lvi1 = lvDozators.SelectedItems[0];
ListViewItem lvi2 = null;
int tag = (int)lvi1.Tag - 1;
foreach (ListViewItem lvi in lvDozators.CheckedItems)
  if ((int)lvi.Tag == tag)
    {
      lvi2 = lvi;
      break;
    }
lvi1.Tag = (int)lvi1.Tag - 1;
lvi2.Tag = (int)lvi2.Tag + 1;
lvDozators.ListViewItemSorter = new OKSKRpEdit.ItemsComparer();
lvDozators.Sort();

В коде - ItemsComparer: мой класс-сортировщик по полю Tag каждого ListViewItem.
Вот код его:
Код

class ItemsComparer : IComparer
{

    #region IComparer Members

    public int Compare(object x, object y)
    {
        ListViewItem iX = x as ListViewItem;
        ListViewItem iY = y as ListViewItem;
        return (int)iX.Tag - (int)iY.Tag;
    }

    #endregion
};

После вызова метода Sort() никакого изменения порядка не происходит. Подскажите, где ошибка?

Проблему порешал: сортировка не работает (почему-то), если установлен стиль ShowGroups. Сделал так: установил ShowGroups в FALSE, отсортировал, а затем вернул ShowGroups в TRUE. Работает.  smile 

Это сообщение отредактировал(а) Freak_FB - 17.12.2007, 11:51


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.