2012-03-30 2 views
0

Я хочу создать список категорий и сопоставить каждую категорию с ListViewGroup.Не создана ли группа ListView по умолчанию автоматически?

В начале/шлейфом, у меня есть этот код («listApplications» является ListView):

private ListViewGroup GetGroupForCategoryName(string ACategoryName) { 
    return listApplications.Groups[0]; 
} 

... но я получаю, «Индекс находился вне диапазона должны быть не-. отрицательный и меньше размера коллекции. Имя параметра: индекс «

Поскольку ListView имеет группу по умолчанию (поэтому я прочитал), я предположил, что элемент 0 будет этой группой по умолчанию. Нужно ли явно создавать группу по умолчанию, так что 0 не выходит за пределы диапазона или ...?

ответ

2

Добавьте группы, используя смарт-тег или в код, а затем назначьте. Я не думаю, что по умолчанию установлена ​​группа. Убедитесь, что элемент управления находится в режиме просмотра деталей.

VB

ListView1.ShowGroups = True 
ListView1.View = View.Details 

Dim iFirstGroup As Integer, iSecondGroup As Integer 

iFirstGroup = ListView1.Groups.Add(New ListViewGroup("Test 1")) 
iSecondGroup = ListView1.Groups.Add(New ListViewGroup("Test 2")) 

ListView1.Columns.Add("Test Col") 

ListView1.Items.Add(New ListViewItem("I'm in Group 1") With {.Group = ListView1.Groups(iFirstGroup)}) 
ListView1.Items.Add(New ListViewItem("I'm in Group 2") With {.Group = ListView1.Groups(iSecondGroup)}) 

C#

listView1.ShowGroups = true; 
listView1.View = View.Details; 

int iFirstGroup = 0; 
int iSecondGroup = 0; 

iFirstGroup = listView1.Groups.Add(new ListViewGroup("Test 1")); 
iSecondGroup = listView1.Groups.Add(new ListViewGroup("Test 2")); 

listView1.Columns.Add("Test Col"); 

ListViewItem lvi1 = new ListViewItem("I'm in Group 1"); 
lvi1.Group = listView1.Groups[iFirstGroup]; 

ListViewItem lvi2 = new ListViewItem("I'm in Group 2"); 
lvi2.Group = listView1.Groups[iSecondGroup]; 

listView1.Items.Add(lvi1); 
listView1.Items.Add(lvi2); 
1

От MSDN:

Чтобы использовать функцию группирования, добавить один или несколько объектов ListViewGroup в коллекцию Groups элемента управления ListView. Задайте текст заголовка группы и выравнивание заголовка в конструкторе ListViewGroup или установите их , используя свойства ListViewGroup.Header и ListViewGroup.HeaderAlignment .

Так что пример на MSDN может дать вам несколько советов.

+0

Спасибо; Я знал это, но также читал, что есть группа по умолчанию. Я думал, что группа по умолчанию должна быть в индексе 0 в массиве Groups. –

Смежные вопросы