ListViewItem::Group Property


Gets or sets the group to which the item is assigned.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

property ListViewGroup^ Group {
	ListViewGroup^ get();
	void set(ListViewGroup^ value);

Property Value

Type: System.Windows.Forms::ListViewGroup^

The ListViewGroup to which the item is assigned.

Use this property to set the group to which an item belongs. You can also set the group in the ListViewItem constructor, or you can use this property to modify the group membership at run time. If you set this property to null and there are groups in the ListView::Groups collection, the item will appear in the default group, which has the header label "DefaultGroupSystem.Windows.Forms". The default group is not contained in the ListView::Groups collection, and cannot be altered. It is primarily useful in debugging to ensure that all items have been properly added to groups.


ListView groups are only available on Windows XP and the Windows Server 2003 family (Windows XP Home Edition, Windows XP Professional, Windows Server 2003). For more information, see the ListViewGroup overview topic.

The following code example demonstrates how the Group property can be used in an application that organizes ListView items by subitem value in the details view. This form of grouping is similar to the grouping used in Windows Explorer. In the example, the groups are created dynamically. For each subitem column, one group is created for each unique subitem value. For the parent item column, one group is created for each unique initial letter. The groups created for each column are stored in a hash table along with the subitem text or initial letter. When a column header is clicked, the hash table corresponding to that column is retrieved. Next, the subitem text values for that column are used as hash table keys to retrieve the correct group for each item. The item is then assigned to the group using the Group property.

This code example is part of a larger example provided for the ListView::Groups property.

   // Sets myListView to the groups created for the specified column.
   void SetGroups(int column)
      // Remove the current groups.

      // Retrieve the hash table corresponding to the column.
      Hashtable^ groups = dynamic_cast<Hashtable^>(groupTables[column]);

      // Copy the groups for the column to an array.
      array<ListViewGroup^>^ groupsArray = gcnew array<ListViewGroup^>(groups->Count);
      groups->Values->CopyTo(groupsArray, 0);

      // Sort the groups and add them to myListView.
      Array::Sort(groupsArray, gcnew ListViewGroupSorter(myListView->Sorting));

      // Iterate through the items in myListView, assigning each 
      // one to the appropriate group.
      IEnumerator^ myEnum = myListView->Items->GetEnumerator();
      while (myEnum->MoveNext())
         ListViewItem^ item = safe_cast<ListViewItem^>(myEnum->Current);
         // Retrieve the subitem text corresponding to the column.
         String^ subItemText = item->SubItems[column]->Text;

         // For the Title column, use only the first letter.
         if (column == 0) 
            subItemText = subItemText->Substring(0, 1);

         // Assign the item to the matching group.
         item->Group = dynamic_cast<ListViewGroup^>(groups[subItemText]);

.NET Framework
Available since 2.0
Return to top