void CorrectSortIndex() { for (int i = 0; i < sortByIndexColumns.Count - 1; i++) { if (sortByIndexColumns[i].SortIndex == sortByIndexColumns[i + 1].SortIndex) { List sameIndexColumns = new List(); sameIndexColumns.Add(sortByIndexColumns[i]); sortByIndexColumns.RemoveAt(i); for (int j = i; j < sortByIndexColumns.Count; j++) { if (sameIndexColumns[0].SortIndex != sortByIndexColumns[i].SortIndex) { SortSameIndexes(sameIndexColumns, i); break; } else { sameIndexColumns.Add(sortByIndexColumns[i]); sortByIndexColumns.RemoveAt(i); } } if (sameIndexColumns.Count > 0) { SortSameIndexes(sameIndexColumns, i); } } } } void SortSameIndexes(IList sameIndexColumns, int position) { }