Автоматическая группировка ListView

Допустим, в вашем списке много данных и вы хотите сгруппировать эти данные в соответствии с подпунктами.
Например:
      Предположим, у меня есть некоторые данные о книгах в моем ListView. Список элементов содержит имя автора и название книги, всего около 2000.Теперь я хочу, сгруппировать данные в ListView, по авторам.Есть 50 уникальных авторов, то есть мы должны создать 50 групп в ListView.

Как использовать код:
      Допустим, индекс подпункта автор составляет 1 и имя списка LstBooks.
Затем вызываем функцию, как:

GroupListView ( LstBooks , 1 );

Код функции:

public void GroupListView(ListView lstV, int SubItemIndex)
{
    bool flag = true;
    foreach (ListViewItem l in lstV.Items)
    {
        string strmyGroupname = l.SubItems[SubItemIndex].Text;
        foreach (ListViewGroup lvg in lstV.Groups)
        {
            if (lvg.Name == strmyGroupname)
            {
                l.Group = lvg;
                flag = false;
            }
        }
        if (flag == true)
        {
            ListViewGroup lstGrp = new ListViewGroup(strmyGroupname, strmyGroupname);
            lstV.Groups.Add(lstGrp);
            l.Group = lstGrp;
        }
        flag = true;
    }
}
Источник www.daniweb.com


Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!