• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Datagridview - "висячие строки"

  • Автор темы Valdocco
  • Дата начала
V

Valdocco

Господа, приветствую! Мне требуется сделать "висячие строки" в DataGridView. Тоесть чтобы независимо от сортировки, которую делает пользователь клкнув по заголовку столбца, указанные строки оставались наверху. Свойство Frozen частично соответствует моей задаче, но при сортировке все сбивается.

Как решить эту проблему?
 
L

l0nley

Вашу проблему можно решить следующим способом:
Каждая строка (тип DataGridViewRow) имеет property с именем Tag и типом object, которому можно присваивать абсолютно произвольное значение. Допустим мы при загрузке данных в DataGridView в property Tag поместим признак того, что строка "висячая", например булево true.
Сортировку будем производить перегруженным методом Sort(IComparer), которому подсунем в качестве IComparer экземпляр класса, который implement интерфейс IComparer. Единственное что остается - в коде метода Compare() добиться того, чтобы все строки, у которых установлено property Tag были всегда "наверху", но это уже зависит от конкретных типов сортировки, которые вы применяете.

Пример класса RowComparer:IComparer можно посмотреть в
 
V

Valdocco

У меня элемент DataGridView привязан к DataTable через DataSource. Поэтому метод Sort не работает.
Как сделать висячие строки в этом случае?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!