Compartir vía


ListViewItem.Group Propiedad

Definición

Obtiene o establece el grupo al que se asigna el elemento.

public:
 property System::Windows::Forms::ListViewGroup ^ Group { System::Windows::Forms::ListViewGroup ^ get(); void set(System::Windows::Forms::ListViewGroup ^ value); };
public System.Windows.Forms.ListViewGroup Group { get; set; }
public System.Windows.Forms.ListViewGroup? Group { get; set; }
member this.Group : System.Windows.Forms.ListViewGroup with get, set
Public Property Group As ListViewGroup

Valor de propiedad

ListViewGroup al que se asigna el elemento.

Ejemplos

En el ejemplo de código siguiente se muestra cómo se puede usar la Group propiedad en una aplicación que organiza los ListView elementos por valor de subelemento en la vista de detalles. Esta forma de agrupación es similar a la agrupación usada en el Explorador de Windows. En el ejemplo, los grupos se crean dinámicamente. Para cada columna de subelemento, se crea un grupo para cada valor de subelemento único. Para la columna de elemento primario, se crea un grupo para cada letra inicial única. Los grupos creados para cada columna se almacenan en una tabla hash junto con el texto del subelemento o la letra inicial. Cuando se hace clic en un encabezado de columna, se recupera la tabla hash correspondiente a esa columna. A continuación, los valores de texto del subelemento de esa columna se usan como claves de tabla hash para recuperar el grupo correcto para cada elemento. A continuación, el elemento se asigna al grupo mediante la Group propiedad .

Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la ListView.Groups propiedad .

   // Sets myListView to the groups created for the specified column.
private:
   void SetGroups(int column)
   {
      // Remove the current groups.
      myListView->Groups->Clear();

      // 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));
      myListView->Groups->AddRange(groupsArray);

      // 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]);
      }
   }
// Sets myListView to the groups created for the specified column.
private void SetGroups(int column)
{
    // Remove the current groups.
    myListView.Groups.Clear();

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

    // Copy the groups for the column to an array.
    ListViewGroup[] groupsArray = new ListViewGroup[groups.Count];
    groups.Values.CopyTo(groupsArray, 0);

    // Sort the groups and add them to myListView.
    Array.Sort(groupsArray, new ListViewGroupSorter(myListView.Sorting));
    myListView.Groups.AddRange(groupsArray);

    // Iterate through the items in myListView, assigning each 
    // one to the appropriate group.
    foreach (ListViewItem item in myListView.Items)
    {
        // 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 = (ListViewGroup)groups[subItemText];
    }
}
' Sets myListView to the groups created for the specified column.
Private Sub SetGroups(column As Integer)
    ' Remove the current groups.
    myListView.Groups.Clear()
    
    ' Retrieve the hash table corresponding to the column.
    Dim groups As Hashtable = CType(groupTables(column), Hashtable)
    
    ' Copy the groups for the column to an array.
    Dim groupsArray(groups.Count - 1) As ListViewGroup
    groups.Values.CopyTo(groupsArray, 0)
    
    ' Sort the groups and add them to myListView.
    Array.Sort(groupsArray, New ListViewGroupSorter(myListView.Sorting))
    myListView.Groups.AddRange(groupsArray)
    
    ' Iterate through the items in myListView, assigning each 
    ' one to the appropriate group.
    Dim item As ListViewItem
    For Each item In myListView.Items
        ' Retrieve the subitem text corresponding to the column.
        Dim subItemText As String = item.SubItems(column).Text
        
        ' For the Title column, use only the first letter.
        If column = 0 Then
            subItemText = subItemText.Substring(0, 1)
        End If 

        ' Assign the item to the matching group.
        item.Group = CType(groups(subItemText), ListViewGroup)
    Next item
End Sub

Comentarios

Utilice esta propiedad para establecer el grupo al que pertenece un elemento. También puede establecer el grupo en el ListViewItem constructor o puede usar esta propiedad para modificar la pertenencia a grupos en tiempo de ejecución. Si establece esta propiedad null en y hay grupos en la ListView.Groups colección, el elemento aparecerá en el grupo predeterminado, que tiene la etiqueta de encabezado "DefaultGroupSystem.Windows.Forms". El grupo predeterminado no está contenido en la ListView.Groups colección y no se puede modificar. Es principalmente útil en la depuración para asegurarse de que todos los elementos se han agregado correctamente a los grupos.

Nota

ListView los grupos solo están disponibles en Windows XP y la familia Windows Server 2003 (Windows XP Home Edition, Windows XP Professional, Windows Server 2003). Para obtener más información, vea el tema de información general de ListViewGroup.

Se aplica a

Consulte también