Я хочу отсортировать элементы ListView по содержимому второго столбца (который может быть «в сети» или «вне сети»). Сортировка будет выполняться только в одном конкретном месте кода, поэтому решение не должно быть гибким. Более того, он должен быть прост в реализации и не требовать серьезных изменений в остальной части приложения.
Я попытался создать класс, реализующий IComparer, и присвоить его listView.ListViewItemSorter, но у меня это не работает.
Пример кода:
class ChannelSorter : System.Collections.IComparer
{
public int Compare(object a, object b)
{
if ((a as ListViewItem).SubItems[0].Text.CompareTo("Online") == 0)
if ((b as ListViewItem).SubItems[0].Text.CompareTo("Online") == 0)
return 0;
else
return -1;
else if ((b as ListViewItem).SubItems[0].Text.CompareTo("Online") == 0)
return 1;
else
return 0;
}
}
// in constructor of Form1
listView1.ListViewItemSorter = new ChannelSorter();