0
여러 열이있는 ListView (GridView)가 있고 지금까지는 알파벳 순으로 정렬 할 수 있지만 A-Z를 정렬 할 때 빈 문자열이 맨 위에 표시됩니다. 나는 이것을 끝까지 옮기고 싶다. 나는 마지막에 빈 문자열을 넣을 IComparer를 만들었지 만 ListView에서 사용하는 방법을 모르겠습니다. 여기에 내가 만든 비교자가 있습니다.끝에 빈 문자열을 사용하여 WPF GridView를 사전 순으로 정렬하는 방법은 무엇입니까?
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
If TypeOf x Is String And TypeOf y Is String Then
If x = "" And y = "" Then
Return 0
ElseIf x = "" And y <> "" Then
Return 1
ElseIf x <> "" And y = "" Then
Return -1
End If
End If
Return x.CompareTo(y)
End Function
ListCollectionView에서 CustomSort를 사용했지만 문서에서와 같이 시도했지만 작동하지 않았습니다. 내 ListView에는 여러 개의 열이 있으며 각 열은 클래스의 속성에 바인딩됩니다. SortDescriptions를 사용하여 단일 열을 기준으로 정렬하므로 String (속성 유형)이 비교 자에게 전달 될 것으로 기대됩니다. 대신 내 수업 유형을 전달하는 것 같습니다. 왜??? 또한이 기사에서는 .ItemsSource를 사용하라고 나와 있지만 DataContext를 설정하기 때문에 Nothing/null입니다. 이것이 영향을 미칠 수 있습니까? – grant
글쎄,이 작업을 얻을 수있는 유일한 방법은 비교 자의 매개 변수를 속성 이름으로 설정하고 속성 값을 가져 오기 위해 반사를 사용하여 열의 속성 이름을 설정하는 것이었지만이 방법은 여러 열 정렬 좀 더 구체적 인 새로운 질문을하고 있습니다. http://stackoverflow.com/q/5588353/403736 – grant