2014-03-29 4 views
0

열을 기준으로 목록보기를 정렬하고 싶습니다.이 예제 코드는 http://support.microsoft.com/kb/319401입니다. 작동하지만 listview 끝에 빈 항목이 하나 있는데 열을 클릭하면이 항목이 첫 번째 항목이되고 끝에 필요합니다. 빈 항목을 건너 뛰도록 코드를 만들려면 어떻게해야합니까?colums로 listview를 정렬하면 먼저 빈 목록이 표시됩니다.

감사합니다. 비교의 원래 결과를 오버라이드 (override) 할 필요가

// Compare the two items 
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, 
             listviewY.SubItems[ColumnToSort].Text); 
if (listviewX.SubItems[ColumnToSort].Text=="") 
     compareResult = (OrderOfSort == SortOrder.Descending ? -1: 1); 
else if (listviewY.SubItems[ColumnToSort].Text=="") 
     compareResult = (OrderOfSort == SortOrder.Descending ? 1 : -1); 

이 :처럼 뭔가

// Compare the two items 
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, 
             listviewY.SubItems[ColumnToSort].Text); 

: 당신이 비교 방법의이 부분을 변경할 수 있습니다 전체 예제를 구현 한 경우

답변

1

.

빈 항목을 확인하는 방법을 보거나, null이거나 이전에했던 모든 것을보십시오.!

+0

안녕하세요, 답변은 작동하지만 오름차순으로 오름차순이 아닙니다. 그것은갑니다 : 공백 -> Z -> Y -> X -> W -> V -> U -> –

+0

사용중인 SortOrder를 사용하여 대답을 편집했습니다. 물론 빈 항목은 항상 마지막에 남습니다. 나는 당신이 그걸 원할 것이라고 기대하지 않았지만, 보시다시피, 이것은별로 많은 코드가 아닙니다. 나는 그것이 효과가 있기를 바랍니다. – TaW

+0

고마워요, 해냈어! –

관련 문제