ListViewItemsorter에 비교를 할당합니다
문제
열을 기준으로 C#로 ListView 컨트롤을 정렬하고 싶습니다. ColumnClickeventhandler를 만들었습니다.
private void contactsListView_ColumnClick(object sender, ColumnClickEventArgs e)
{
contactsListView.ListViewItemSorter = new ListViewItemComparer(e.Column);
contactsListView.Sort();
}
ListViewItemComparer 클래스가 다음과 같습니다.
class ListViewItemComparer : IComparer<ListViewItem>
{
private int col;
public ListViewItemComparer()
{
col = 0;
}
public ListViewItemComparer(int column)
{
col = column;
}
public int Compare(ListViewItem x, ListViewItem y)
{
int returnVal = -1;
returnVal = String.Compare(x.SubItems[col].Text, y.SubItems[col].Text);
return returnVal;
}
}
이 코드는 CANCTINGSLISTVIEW를 원인으로 컴파일하지 않습니다. listViewItemserter는 유형 ICOMPARER이고 클래스 ListViewItemCorper는 ICOMPARER입니다.
서로를 명시 적으로 캐스팅하는 방법이 있습니까? 아니면 그냥 다른 방법으로 정렬합니까?
미리 감사드립니다
해결책
일반 IComparer<T>
그리고 비 게 니체 IComparer
서로 컨버터블이 아닙니다.
아마도 당신의 ListViewItemComparer
비 게 릭을 구현해야합니다 IComparer
대신에?
다른 팁
나는 비교 클래스가 i 여야한다고 믿는다Comparer, not IComparer<type>
.
여기에 기사가 있습니다 도움이 될 수 있습니다. SortDescriptions를 사용합니다.
노력하다
class ListViewItemComparer : IComparer
~ 아니다
class ListViewItemComparer : IComparer<ListViewItem>
제휴하지 않습니다 StackOverflow