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

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

Valdocco

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

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

l0nley

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

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

Valdocco

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