Compartir a través de


ListViewGroupCollection.AddRange Método

Definición

Agrega varios grupos a la colección.

Sobrecargas

AddRange(ListViewGroup[])

Agrega una matriz de grupos a la colección.

AddRange(ListViewGroupCollection)

Agrega a la colección los grupos de un ListViewGroupCollection existente.

AddRange(ListViewGroup[])

Agrega una matriz de grupos a la colección.

public:
 void AddRange(cli::array <System::Windows::Forms::ListViewGroup ^> ^ groups);
public:
 void AddRange(... cli::array <System::Windows::Forms::ListViewGroup ^> ^ groups);
public void AddRange (System.Windows.Forms.ListViewGroup[] groups);
public void AddRange (params System.Windows.Forms.ListViewGroup[] groups);
member this.AddRange : System.Windows.Forms.ListViewGroup[] -> unit
Public Sub AddRange (groups As ListViewGroup())
Public Sub AddRange (ParamArray groups As ListViewGroup())

Parámetros

groups
ListViewGroup[]

Matriz de tipo ListViewGroup que especifica los grupos que se agregarán a la colección.

Excepciones

groups contiene al menos un grupo que tiene por lo menos un ListViewItem que pertenece a un control ListView distinto del que posee este ListViewGroupCollection.

El ListView objeto al que se asigna esta colección está en modo virtual.

Ejemplos

En el ejemplo siguiente se muestra cómo se puede usar el AddRange método 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 borra .ListViewGroupCollection A continuación, se recupera la tabla hash correspondiente a la columna en la que se hace clic y cada elemento se asigna al grupo adecuado. Por último, se agrega una matriz ordenada de los grupos de la tabla hash a ListViewGroupCollection.

Para obtener el ejemplo completo, consulte el ListViewGroupCollection tema de referencia de información general.

   // 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

Use esta versión del AddRange método para agregar una matriz de grupos a la colección de grupos. Este método es útil al crear varios ListViewGroup objetos y desea agregarlos a la colección con una sola llamada de método. Para agregar grupos individuales a la colección, use el Add método .

Este método también es útil cuando desea proporcionar varias maneras de agrupar los elementos en un ListView control. Para ello, cree varias matrices de grupos. Para cambiar la agrupación, use primero el Clear método para quitar todos los grupos de la colección y, a continuación, use el AddRange método para agregar una matriz de grupos diferente.

A diferencia del Add método , el AddRange método no tiene un valor devuelto que se puede usar para determinar si un grupo que se va a agregar ya está en la colección. Si necesita esta información, use el Contains método antes de usar el AddRange método .

Consulte también

Se aplica a

AddRange(ListViewGroupCollection)

Agrega a la colección los grupos de un ListViewGroupCollection existente.

public:
 void AddRange(System::Windows::Forms::ListViewGroupCollection ^ groups);
public void AddRange (System.Windows.Forms.ListViewGroupCollection groups);
member this.AddRange : System.Windows.Forms.ListViewGroupCollection -> unit
Public Sub AddRange (groups As ListViewGroupCollection)

Parámetros

groups
ListViewGroupCollection

ListViewGroupCollection que contiene los grupos que se van a agregar a la colección.

Excepciones

groups contiene al menos un grupo que tiene por lo menos un ListViewItem que pertenece a un control ListView distinto del que posee este ListViewGroupCollection.

El ListView objeto al que se asigna esta colección está en modo virtual.

Comentarios

Utilice esta versión del AddRange método para agregar los elementos de un ListViewGroupCollection objeto que se recupera a través de la ListView.Groups propiedad de un control diferente ListView .

A diferencia del Add método , el AddRange método no tiene un valor devuelto que se puede usar para determinar si un grupo que se va a agregar ya está en la colección. Si necesita esta información, use el Contains método antes de usar el AddRange método .

Se aplica a