Сортировка DataGridView по нескольким столбцам одновременно - C#
Формулировка задачи:
Доброй ночи уважаемые посетители.
Я столкнулся с очередной проблемой. Мне требуется отсортировать DataGridView по 2 и трем столбцам одновременно (как в экселе, с начало по А, потом по Б, потом по В).
По одному столбцу сортирует - проблем нет, сразу по двум - ума не прилажу как сделать.
Если кто знает буду благодарен, за пример кода вообще счастлив.
Ещё было классно если кто подскажет как его по человечески сортировать научить, а то столбец с цифрами и он их сортирует "1" "11" "2" "22" "3" "33".
Решение задачи: «Сортировка DataGridView по нескольким столбцам одновременно»
textual
Листинг программы
private void DGVElementsItems_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
int CompareResult = 0;
for (int ColIndex = e.Column.Index; ColIndex < DGVElementsItems.Columns.Count; ColIndex++)
{
int CellVavue1 = 0;
int CellVavue2 = 0;
if (int.TryParse(DGVElementsItems[ColIndex, e.RowIndex1].Value.ToString(), out CellVavue1) &&
int.TryParse(DGVElementsItems[ColIndex, e.RowIndex2].Value.ToString(), out CellVavue2))
{
if (CellVavue1 > CellVavue2)
CompareResult = 1;
else if (CellVavue1 < CellVavue2)
CompareResult = -1;
else if (CellVavue1 == CellVavue2)
CompareResult = 0;
}
else
{
CompareResult = System.String.Compare(
DGVElementsItems[ColIndex, e.RowIndex1].Value.ToString(),
DGVElementsItems[ColIndex, e.RowIndex2].Value.ToString()
);
}
if (CompareResult != 0)
{
break;
}
}
e.SortResult = CompareResult;
e.Handled = true;
}