RadListView supports both custom grouping and automatic grouping based on a certain property.
The latter is achievable by enabling the EnableGrouping and
ShowGroups properties and then adding the desired
GroupDescriptors to the GroupDescriptors
collection of the control. The following code will group the items according to their Value property:
Copy[C#] Group by value
radListView1.EnableGrouping = true;
radListView1.ShowGroups = true;
GroupDescriptor groupByValue = new GroupDescriptor(new SortDescriptor[] { new SortDescriptor("Value", ListSortDirection.Descending) });
radListView1.GroupDescriptors.Add(groupByValue);
Copy[VB.NET] Group by value
RadListView1.EnableGrouping = True
RadListView1.ShowGroups = True
Dim groupByValue As New GroupDescriptor(New SortDescriptor() {New SortDescriptor("Value", ListSortDirection.Descending)})
RadListView1.GroupDescriptors.Add(groupByValue)
And here is how you can group by a certain column when DetailsView is used:
Copy[C#] Group by column
radListView1.EnableGrouping = true;
radListView1.ShowGroups = true;
GroupDescriptor groupByType = new GroupDescriptor(new SortDescriptor[]
{
new SortDescriptor("Type", ListSortDirection.Descending),
});
radListView1.GroupDescriptors.Add(groupByType);
Copy[VB.NET] Group by column
RadListView1.EnableGrouping = True
RadListView1.ShowGroups = True
Dim groupByType As New GroupDescriptor(New SortDescriptor() {New SortDescriptor("Type", ListSortDirection.Descending)})
RadListView1.GroupDescriptors.Add(groupByType)
To take advantage of the custom grouping feature of RadListView, just enable the
EnableCustomGrouping property and add the desired descriptor.
Here is an example for custom grouping:
Copy[C#] Custom grouping
radListView1.EnableCustomGrouping = true;
radListView1.ShowGroups = true;
ListViewDataItemGroup docGroup = new ListViewDataItemGroup("Documents");
ListViewDataItemGroup diskGroup = new ListViewDataItemGroup("Disks");
radListView1.Groups.Add(docGroup);
radListView1.Groups.Add(diskGroup);
foreach (ListViewDataItem item in radListView1.Items)
{
if (item.Value.ToString() == "Shared Documents" || item.Value.ToString() == "Administrator's Documents")
{
item.Group = docGroup;
}
else
{
item.Group = diskGroup;
}
}
Copy[VB.NET] Custom grouping
RadListView1.EnableCustomGrouping = True
RadListView1.ShowGroups = True
Dim docGroup As New ListViewDataItemGroup("Documents")
Dim diskGroup As New ListViewDataItemGroup("Disks")
RadListView1.Groups.Add(docGroup)
RadListView1.Groups.Add(diskGroup)
For Each item As ListViewDataItem In RadListView1.Items
If item.Value = "Shared Documents" OrElse item.Value = "Administrator's Documents" Then
item.Group = docGroup
Else
item.Group = diskGroup
End If
Next
Please note, that if you are using data binding, you can use the ItemDataBound event,
to assign certain item to a certain group.