Неправленный индекс колонки listview при сортировке.
От: Visperer thelastpage.org
Дата: 11.11.09 18:29
Оценка:
Возникла проблема буду благодарен за помощь.

в сети наткнулся на решение для сортировки ListView попробовал все работает...

класс:
    public class ItemComparer : IComparer
        {
            private int columnIndex;
            private bool sortAscending = true;
      
            public int ColumnIndex
            {
                set
                {
                    //предыдущий клик был на этой же колонке?  
                    if (columnIndex == value)
                        //да - меняем направление сортировки    
                        sortAscending = !sortAscending;
                    else
                    {
                        columnIndex = value;
                        sortAscending = true;
                    }
                }
            }

            public int Compare(object x, object y)
            {
                ...
            }
        }

Вызов:

     public FormMain()
        {
             ...
             listView.ListViewItemSorter = ic;
             ...
        }

    private void listView_ColumnClick(object sender, ColumnClickEventArgs e)
        {
            ic.ColumnIndex = e.Column;
            ((ListView) sender).Sort();
            ...
        }


Но позже выяснилось, что на других компьютерах e.Column возвращает номерколонки + 1.
Кто знает от чего это и как с этим бороться?
Правильно работает на Windows 7 и Vista в других системах, как правило — нет.
Везде стоит NF 3.5

12.11.09 02:42: Перенесено модератором из '.NET' — AndrewVK
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.