ListViewGroupCollection.Clear Metoda

Definicja

Usuwa wszystkie grupy z kolekcji.

public:
 virtual void Clear();
public void Clear ();
abstract member Clear : unit -> unit
override this.Clear : unit -> unit
Public Sub Clear ()

Implementuje

Przykłady

W poniższym przykładzie pokazano, jak Clear można użyć metody w aplikacji, która organizuje ListView elementy według wartości subitem w widoku szczegółów. Ta forma grupowania jest podobna do grupowania używanego w eksploratorze Windows. W tym przykładzie grupy są tworzone dynamicznie. Dla każdej kolumny subitem jedna grupa jest tworzona dla każdej unikatowej wartości subitem. Dla kolumny elementu nadrzędnego jedna grupa jest tworzona dla każdej unikatowej litery początkowej. Grupy utworzone dla każdej kolumny są przechowywane w tabeli skrótów wraz z tekstem subitem lub początkową literą. Po kliknięciu ListViewGroupCollection nagłówka kolumny zostanie wyczyszczone. Następnie zostanie pobrana tabela skrótów odpowiadająca klikniętej kolumnie, a każdy element zostanie przypisany do odpowiedniej grupy. Na koniec do tabeli skrótów jest dodawana ListViewGroupCollectionposortowana tablica grup .

Pełny przykład można znaleźć w temacie referencyjnym ListViewGroupCollection przeglądu.

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

Uwagi

Użyj tej metody, aby usunąć wszystkie grupy z kolekcji. Należy pamiętać, że usunięcie grup z ListView.Groups kolekcji nie powoduje usunięcia elementów z kontrolki ListView .

Ta metoda jest przydatna do wyłączania funkcji grupowania. Jeśli w kontrolce ListView nie ma żadnych grup, elementy są zwykle wyświetlane. Aby usunąć poszczególne grupy z kolekcji, użyj Remove metody lub RemoveAt .

Ta metoda jest również przydatna, gdy chcesz udostępnić wiele sposobów grupowania elementów. Aby zmienić grupowanie, najpierw użyj Clear metody , aby usunąć wszystkie grupy z kolekcji, a następnie użyj AddRange metody , aby dodać inną tablicę grup.

Dotyczy