ListViewGroupCollection ListViewGroupCollection ListViewGroupCollection ListViewGroupCollection Class

Definition

Stellt die Auflistung von Gruppen in einem ListView-Steuerelement dar.Represents the collection of groups within a ListView control.

public ref class ListViewGroupCollection : System::Collections::IList
[System.ComponentModel.ListBindable(false)]
public class ListViewGroupCollection : System.Collections.IList
type ListViewGroupCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
Public Class ListViewGroupCollection
Implements IList
Vererbung
ListViewGroupCollectionListViewGroupCollectionListViewGroupCollectionListViewGroupCollection
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die ListView Gruppierungs Funktion verwendet wird, um Elemente nach Unterelement-Wert in der Detailansicht zu organisieren.The following example demonstrates how to use the ListView grouping feature to organize items by subitem value in the details view. Diese Form der Gruppierung ähnelt der im Windows-Explorer verwendeten Gruppierung.This form of grouping is similar to the grouping used in Windows Explorer. Im Beispiel werden die Gruppen dynamisch erstellt.In the example, the groups are created dynamically. Für jede Unterelement Spalte wird eine Gruppe für jeden eindeutigen Unterelement Wert erstellt.For each subitem column, one group is created for each unique subitem value. Für die übergeordnete Element Spalte wird eine Gruppe für jeden eindeutigen Anfangsbuchstaben erstellt.For the parent item column, one group is created for each unique initial letter. Wenn Sie auf den Header einer Spalte klicken, werden die Elemente in die für diese Spalte erstellten Gruppen sortiert.Clicking the header of a column sorts the items into the groups created for that column. Wenn Sie erneut auf denselben Spaltenheader klicken, wird die Reihenfolge der Gruppen umgekehrt.Clicking the same column header again reverses the order of the groups.

#using <mscorlib.dll>
#using <System.Drawing.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::Collections; 
using namespace System::Windows::Forms;

public ref class ListViewGroupsExample : public Form
{
private:
   ListView^ myListView;
   bool isRunningXPOrLater;

   // Declare a Hashtable array in which to store the groups.
   array<Hashtable^>^ groupTables;

   // Declare a variable to store the current grouping column.
   int groupColumn;

public:
   ListViewGroupsExample()
   {
      groupColumn = 0;
      // Initialize myListView.
      myListView = gcnew ListView();
      myListView->Dock = DockStyle::Fill;
      myListView->View = View::Details;
      myListView->Sorting = SortOrder::Ascending;

      // Create and initialize column headers for myListView.
      ColumnHeader^ columnHeader0 = gcnew ColumnHeader();
      columnHeader0->Text = "Title";
      columnHeader0->Width = -1;
      ColumnHeader^ columnHeader1 = gcnew ColumnHeader();
      columnHeader1->Text = "Author";
      columnHeader1->Width = -1;
      ColumnHeader^ columnHeader2 = gcnew ColumnHeader();
      columnHeader2->Text = "Year";
      columnHeader2->Width = -1;

      // Add the column headers to myListView.

      array<ColumnHeader^>^ temp0 = {columnHeader0, columnHeader1, columnHeader2};
      myListView->Columns->AddRange(temp0);

      // Add a handler for the ColumnClick event.
      myListView->ColumnClick += 
         gcnew ColumnClickEventHandler(this, &ListViewGroupsExample::myListView_ColumnClick);

      // Create items and add them to myListView.

      array<String^>^ temp1 = {"Programming Windows", "Petzold, Charles", "1998"};
      ListViewItem^ item0 = gcnew ListViewItem( temp1 );

      array<String^>^ temp2 = {"Code: The Hidden Language of Computer Hardware and Software",
         "Petzold, Charles", "2000"};
      ListViewItem^ item1 = gcnew ListViewItem( temp2 );

      array<String^>^ temp3 = {"Programming Windows with C#", "Petzold, Charles", "2001"};
      ListViewItem^ item2 = gcnew ListViewItem( temp3 );

      array<String^>^ temp4 = {"Coding Techniques for Microsoft Visual Basic .NET",
         "Connell, John", "2001"};
      ListViewItem^ item3 = gcnew ListViewItem( temp4 );

      array<String^>^ temp5 = {"C# for Java Developers", "Jones, Allen & Freeman, Adam",
         "2002"};
      ListViewItem^ item4 = gcnew ListViewItem( temp5 );

      array<String^>^ temp6 = {"Microsoft .NET XML Web Services Step by Step",
         "Jones, Allen & Freeman, Adam", "2002"};
      ListViewItem^ item5 = gcnew ListViewItem( temp6 );

      array<ListViewItem^>^ temp7 = {item0, item1, item2, item3, item4, item5};
      myListView->Items->AddRange( temp7 );

      // Determine whether Windows XP or a later 
      // operating system is present.
      isRunningXPOrLater = false;

      if (System::Environment::OSVersion->Version->Major > 5 ||
         ( System::Environment::OSVersion->Version->Major == 5 &&
         System::Environment::OSVersion->Version->Minor >= 1) )
      {
         isRunningXPOrLater = true;
      }

      if (isRunningXPOrLater)
      {
         // Create the groupsTable array and populate it with one 
         // hash table for each column.
         groupTables = gcnew array<Hashtable^>(myListView->Columns->Count);
         for (int column = 0; column < myListView->Columns->Count; column++)
         {
            // Create a hash table containing all the groups 
            // needed for a single column.
            groupTables[column] = CreateGroupsTable(column);
         }

         // Start with the groups created for the Title column.
         SetGroups(0);
      }

      // Initialize the form.
      this->Controls->Add(myListView);
      this->Size = System::Drawing::Size(550, 330);
      this->Text = "ListView Groups Example";
   }

   // Groups the items using the groups created for the clicked 
   // column.
private:
   void myListView_ColumnClick(
      Object^ /*sender*/, ColumnClickEventArgs^ e)
   {
      // Set the sort order to ascending when changing
      // column groups; otherwise, reverse the sort order.
      if ( myListView->Sorting == SortOrder::Descending || 
         ( isRunningXPOrLater && (e->Column != groupColumn) ) )
      {
         myListView->Sorting = SortOrder::Ascending;
      }
      else 
      {
         myListView->Sorting = SortOrder::Descending;
      }
      groupColumn = e->Column;

      // Set the groups to those created for the clicked column.
      if (isRunningXPOrLater)
      {
         SetGroups(e->Column);
      }
   }

   // 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]);
      }
   }

   // Creates a Hashtable object with one entry for each unique
   // subitem value (or initial letter for the parent item)
   // in the specified column.
private:
   Hashtable^ CreateGroupsTable(int column)
   {
      // Create a Hashtable object.
      Hashtable^ groups = gcnew Hashtable();

      // Iterate through the items in myListView.
      IEnumerator^ myEnum1 = myListView->Items->GetEnumerator();
      while (myEnum1->MoveNext())
      {
         ListViewItem^ item = safe_cast<ListViewItem^>(myEnum1->Current);
         // Retrieve the text value for the column.
         String^ subItemText = item->SubItems[column]->Text;

         // Use the initial letter instead if it is the first column.
         if (column == 0) 
         {
            subItemText = subItemText->Substring(0, 1);
         }

         // If the groups table does not already contain a group
         // for the subItemText value, add a new group using the 
         // subItemText value for the group header and Hashtable key.
         if (!groups->Contains(subItemText))
         {
            groups->Add( subItemText, gcnew ListViewGroup(subItemText, 
               HorizontalAlignment::Left) );
         }
      }

      // Return the Hashtable object.
      return groups;
   }

   // Sorts ListViewGroup objects by header value.
   ref class ListViewGroupSorter : public IComparer
   {
   private:
      SortOrder order;

      // Stores the sort order.
   public:
      ListViewGroupSorter(SortOrder theOrder) 
      { 
         order = theOrder;
      }

      // Compares the groups by header value, using the saved sort
      // order to return the correct value.
      virtual int Compare(Object^ x, Object^ y)
      {
         int result = String::Compare(
            (dynamic_cast<ListViewGroup^>(x))->Header,
            (dynamic_cast<ListViewGroup^>(y))->Header
            );
         if (order == SortOrder::Ascending)
         {
            return result;
         }
         else 
         {
            return -result;
         }
      }
   };
};

[STAThread]
int main() 
{
   Application::EnableVisualStyles();
   Application::Run(gcnew ListViewGroupsExample());
}
using System;
using System.Collections; 
using System.Windows.Forms;

public class ListViewGroupsExample : Form
{
    private ListView myListView;

    // Determine whether Windows XP or a later
    // operating system is present.
    private bool isRunningXPOrLater = 
        OSFeature.Feature.IsPresent(OSFeature.Themes);

    // Declare a Hashtable array in which to store the groups.
    private Hashtable[] groupTables;

    // Declare a variable to store the current grouping column.
    int groupColumn = 0;

    public ListViewGroupsExample()
    {
        // Initialize myListView.
        myListView = new ListView();
        myListView.Dock = DockStyle.Fill;
        myListView.View = View.Details;
        myListView.Sorting = SortOrder.Ascending;

        // Create and initialize column headers for myListView.
        ColumnHeader columnHeader0 = new ColumnHeader();
        columnHeader0.Text = "Title";
        columnHeader0.Width = -1;
        ColumnHeader columnHeader1 = new ColumnHeader();
        columnHeader1.Text = "Author";
        columnHeader1.Width = -1;
        ColumnHeader columnHeader2 = new ColumnHeader();
        columnHeader2.Text = "Year";
        columnHeader2.Width = -1;

        // Add the column headers to myListView.
        myListView.Columns.AddRange(new ColumnHeader[] 
            {columnHeader0, columnHeader1, columnHeader2});

        // Add a handler for the ColumnClick event.
        myListView.ColumnClick += 
            new ColumnClickEventHandler(myListView_ColumnClick);

        // Create items and add them to myListView.
        ListViewItem item0 = new ListViewItem( new string[] 
            {"Programming Windows", 
            "Petzold, Charles", 
            "1998"} );
        ListViewItem item1 = new ListViewItem( new string[] 
            {"Code: The Hidden Language of Computer Hardware and Software", 
            "Petzold, Charles", 
            "2000"} );
        ListViewItem item2 = new ListViewItem( new string[] 
            {"Programming Windows with C#", 
            "Petzold, Charles", 
            "2001"} );
        ListViewItem item3 = new ListViewItem( new string[] 
            {"Coding Techniques for Microsoft Visual Basic .NET", 
            "Connell, John", 
            "2001"} );
        ListViewItem item4 = new ListViewItem( new string[] 
            {"C# for Java Developers", 
            "Jones, Allen & Freeman, Adam", 
            "2002"} );
        ListViewItem item5 = new ListViewItem( new string[] 
            {"Microsoft .NET XML Web Services Step by Step", 
            "Jones, Allen & Freeman, Adam", 
            "2002"} );
        myListView.Items.AddRange(
            new ListViewItem[] {item0, item1, item2, item3, item4, item5});

        if (isRunningXPOrLater)
        {
            // Create the groupsTable array and populate it with one 
            // hash table for each column.
            groupTables = new Hashtable[myListView.Columns.Count];
            for (int column = 0; column < myListView.Columns.Count; column++)
            {
                // Create a hash table containing all the groups 
                // needed for a single column.
                groupTables[column] = CreateGroupsTable(column);
            }

            // Start with the groups created for the Title column.
            SetGroups(0);
        }

        // Initialize the form.
        this.Controls.Add(myListView);
        this.Size = new System.Drawing.Size(550, 330);
        this.Text = "ListView Groups Example";
    }

    [STAThread]
    static void Main() 
    {
        Application.EnableVisualStyles();
        Application.Run(new ListViewGroupsExample());
    }

    // Groups the items using the groups created for the clicked 
    // column.
    private void myListView_ColumnClick(
        object sender, ColumnClickEventArgs e)
    {
        // Set the sort order to ascending when changing
        // column groups; otherwise, reverse the sort order.
        if ( myListView.Sorting == SortOrder.Descending || 
            ( isRunningXPOrLater && (e.Column != groupColumn) ) )
        {
            myListView.Sorting = SortOrder.Ascending;
        }
        else 
        {
            myListView.Sorting = SortOrder.Descending;
        }
        groupColumn = e.Column;

        // Set the groups to those created for the clicked column.
        if (isRunningXPOrLater)
        {
            SetGroups(e.Column);
        }
    }

    // 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];
        }
    }

    // Creates a Hashtable object with one entry for each unique
    // subitem value (or initial letter for the parent item)
    // in the specified column.
    private Hashtable CreateGroupsTable(int column)
    {
        // Create a Hashtable object.
        Hashtable groups = new Hashtable();

        // Iterate through the items in myListView.
        foreach (ListViewItem item in myListView.Items)
        {
            // Retrieve the text value for the column.
            string subItemText = item.SubItems[column].Text;

            // Use the initial letter instead if it is the first column.
            if (column == 0) 
            {
                subItemText = subItemText.Substring(0, 1);
            }

            // If the groups table does not already contain a group
            // for the subItemText value, add a new group using the 
            // subItemText value for the group header and Hashtable key.
            if (!groups.Contains(subItemText))
            {
                groups.Add( subItemText, new ListViewGroup(subItemText, 
                    HorizontalAlignment.Left) );
            }
        }

        // Return the Hashtable object.
        return groups;
    }

    // Sorts ListViewGroup objects by header value.
    private class ListViewGroupSorter : IComparer
    {
        private SortOrder order;

        // Stores the sort order.
        public ListViewGroupSorter(SortOrder theOrder) 
        { 
            order = theOrder;
        }

        // Compares the groups by header value, using the saved sort
        // order to return the correct value.
        public int Compare(object x, object y)
        {
            int result = String.Compare(
                ((ListViewGroup)x).Header,
                ((ListViewGroup)y).Header
            );
            if (order == SortOrder.Ascending)
            {
                return result;
            }
            else 
            {
                return -result;
            }
        }
    }

}
Imports System.Collections
Imports System.Windows.Forms

Public Class ListViewGroupsExample
    Inherits Form

    Private myListView As ListView

    ' Determine whether Windows XP or a later
    ' operating system is present.
    Private isRunningXPOrLater As Boolean = _
        OSFeature.Feature.IsPresent(OSFeature.Themes)
    
    ' Declare a Hashtable array in which to store the groups.
    Private groupTables() As Hashtable
    
    ' Declare a variable to store the current grouping column.
    Private groupColumn As Integer = 0
    
    Public Sub New()
        ' Initialize myListView.
        myListView = New ListView()
        myListView.Dock = DockStyle.Fill
        myListView.View = View.Details
        myListView.Sorting = SortOrder.Ascending
        
        ' Create and initialize column headers for myListView.
        Dim columnHeader0 As New ColumnHeader()
        columnHeader0.Text = "Title"
        columnHeader0.Width = -1
        Dim columnHeader1 As New ColumnHeader()
        columnHeader1.Text = "Author"
        columnHeader1.Width = -1
        Dim columnHeader2 As New ColumnHeader()
        columnHeader2.Text = "Year"
        columnHeader2.Width = -1
        
        ' Add the column headers to myListView.
        myListView.Columns.AddRange( New ColumnHeader() _
            {columnHeader0, columnHeader1, columnHeader2} )
        
        ' Add a handler for the ColumnClick event.
        AddHandler myListView.ColumnClick, AddressOf myListView_ColumnClick
        
        ' Create items and add them to myListView.
        Dim item0 As New ListViewItem( New String() _
            {"Programming Windows", _
            "Petzold, Charles", _
            "1998"} )
        Dim item1 As New ListViewItem( New String() _
            {"Code: The Hidden Language of Computer Hardware and Software", _
            "Petzold, Charles", _
            "2000"} )
        Dim item2 As New ListViewItem( New String() _
            {"Programming Windows with C#", _
            "Petzold, Charles", _
            "2001"} )
        Dim item3 As New ListViewItem( New String() _
            {"Coding Techniques for Microsoft Visual Basic .NET", _
            "Connell, John", _
            "2001"} )
        Dim item4 As New ListViewItem( New String() _
            {"C# for Java Developers", _
            "Jones, Allen / Freeman, Adam", _
            "2002"} )
        Dim item5 As New ListViewItem( New String() _
            {"Microsoft .NET XML Web Services Step by Step", _
            "Jones, Allen / Freeman, Adam", _
            "2002"} )
        myListView.Items.AddRange( _
            New ListViewItem() {item0, item1, item2, item3, item4, item5})
        
        If isRunningXPOrLater
            ' Create the groupsTable array and populate it with one 
            ' hash table for each column.
            groupTables = New Hashtable(myListView.Columns.Count) {}
            Dim column As Integer
            For column = 0 To myListView.Columns.Count - 1
                ' Create a hash table containing all the groups 
                ' needed for a single column.
                groupTables(column) = CreateGroupsTable(column)
            Next column
            
            ' Start with the groups created for the Title column.
            SetGroups(0)
        End If
        
        ' Initialize the form.
        Me.Controls.Add(myListView)
        Me.Size = New System.Drawing.Size(550, 330)
        Me.Text = "ListView Groups Example"
    End Sub
    
    <STAThread()> _
    Shared Sub Main()
        Application.EnableVisualStyles()
        Application.Run(New ListViewGroupsExample())
    End Sub
    
    ' Groups the items using the groups created for the clicked 
    ' column.
    Private Sub myListView_ColumnClick( _
        sender As Object, e As ColumnClickEventArgs)

        ' Set the sort order to ascending when changing
        ' column groups; otherwise, reverse the sort order.
        If myListView.Sorting = SortOrder.Descending OrElse _
            isRunningXPOrLater And e.Column <> groupColumn Then
            myListView.Sorting = SortOrder.Ascending
        Else
            myListView.Sorting = SortOrder.Descending
        End If
        groupColumn = e.Column
        
        ' Set the groups to those created for the clicked column.
        If isRunningXPOrLater Then
            SetGroups(e.Column)
        End If
    End Sub
    
    ' 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

    ' Creates a Hashtable object with one entry for each unique
    ' subitem value (or initial letter for the parent item)
    ' in the specified column.
    Private Function CreateGroupsTable(column As Integer) As Hashtable
        ' Create a Hashtable object.
        Dim groups As New Hashtable()
        
        ' Iterate through the items in myListView.
        Dim item As ListViewItem
        For Each item In myListView.Items
            ' Retrieve the text value for the column.
            Dim subItemText As String = item.SubItems(column).Text
            
            ' Use the initial letter instead if it is the first column.
            If column = 0 Then
                subItemText = subItemText.Substring(0, 1)
            End If 

            ' If the groups table does not already contain a group
            ' for the subItemText value, add a new group using the 
            ' subItemText value for the group header and Hashtable key.
            If Not groups.Contains(subItemText) Then
                groups.Add( subItemText, New ListViewGroup(subItemText, _
                    HorizontalAlignment.Left) )
            End If
        Next item
        
        ' Return the Hashtable object.
        Return groups
    End Function 'CreateGroupsTable

    ' Sorts ListViewGroup objects by header value.
    Private Class ListViewGroupSorter
        Implements IComparer 
        
        Private order As SortOrder
        
        ' Stores the sort order.
        Public Sub New(theOrder As SortOrder)
            order = theOrder
        End Sub
        
        ' Compares the groups by header value, using the saved sort
        ' order to return the correct value.
        Public Function Compare(x As Object, y As Object) As Integer _
            Implements IComparer.Compare
            Dim result As Integer = String.Compare( _
                CType(x, ListViewGroup).Header, _
                CType(y, ListViewGroup).Header )
            If order = SortOrder.Ascending Then
                Return result
            Else
                Return -result
            End If
        End Function 'Compare
    End Class 'ListViewGroupSorter 

End Class 'ListViewGroupsExample

Hinweise

Verwenden Sie ListView.Groups die-Eigenschaft, ListViewGroupCollection um das einem ListView -Steuerelement zugeordnete-ElementUse the ListView.Groups property to get the ListViewGroupCollection associated with a ListView control. Diese Auflistung enthält die ListViewGroup -Objekte, die die im-Steuerelement angezeigten Gruppen ListView.View darstellen, wenn die-Eigenschaft auf einen View.Listanderen Wert als festgelegt ist.This collection contains the ListViewGroup objects that represent the groups shown in the control when the ListView.View property is set to a value other than View.List. Alle Elemente, die keiner Gruppe zugewiesen sind, werden in der Standardgruppe mit der Header Bezeichnung "DefaultGroup{0}" angezeigt.Any items that are not assigned to a group will appear in the default group, which has the header label "DefaultGroup{0}". Die Standardgruppe ist nicht in der ListView.Groups Sammlung enthalten und kann nicht geändert werden.The default group is not contained in the ListView.Groups collection, and cannot be altered. Dies ist in erster Linie hilfreich beim Debuggen, um sicherzustellen, dass alle Elemente ordnungsgemäß zu Gruppen hinzugefügt wurdenIt is primarily useful in debugging to ensure that all items have been properly added to groups. Wenn in der ListView.Groups Auflistung keine Gruppen vorhanden sind, ist die Gruppierungs Funktion deaktiviert.If there are no groups in the ListView.Groups collection, the grouping feature is disabled.

Verwenden Sie Add die-Methode, um der Auflistung eine einzelne Gruppe hinzuzufügen.Use the Add method to add a single group to the collection. Verwenden Sie Insert die-Methode, um eine Gruppe an einem bestimmten Index in der Auflistung hinzuzufügen.Use the Insert method to add a group at a particular index within the collection. Um eine Gruppe zu entfernen, verwenden Remove Sie die-Methode.To remove a group, use the Remove method. Verwenden Sie RemoveAt die-Methode, um die Gruppe an einem bestimmten Index zu entfernen.Use the RemoveAt method to remove the group at a particular index.

Ein kann der Auflistung ListViewGroup nicht mehrmals hinzugefügt werden.You cannot add a ListViewGroup to the collection more than once. Um eine Gruppe innerhalb der Auflistung neu zu positionieren, muss Sie zuerst aus der Sammlung entfernt und dann an der gewünschten Stelle eingefügt werden.To reposition a group within the collection, it must first be removed from the collection, and then inserted at the desired location. Verwenden Sie Contains die-Methode, um zu bestimmen, ob eine bestimmte Gruppe bereits in der Auflistung vorhanden ist.Use the Contains method to determine whether a particular group is already in the collection. Verwenden Sie die IndexOf -Methode, um den Index einer Gruppe in der Auflistung abzurufen.To retrieve the index of a group within the collection, use the IndexOf method. Sie können die Gruppe an einem bestimmten Index mit dem Item[Int32] Indexer erhalten oder festlegen.You can get or set the group at a particular index with the Item[Int32] indexer.

Verwenden Sie AddRange die-Methode, um der Auflistung mehrere Gruppen hinzuzufügen.Use the AddRange method to add multiple groups to the collection. Sie können mehrere Gruppen entweder als Array von Gruppen oder als ListViewGroupCollection hinzufügen, das Sie über die ListView.Groups -Eigenschaft eines anderen ListView Steuer Elements abrufen.You can add multiple groups either as an array of groups or as a ListViewGroupCollection that you retrieve through the ListView.Groups property of another ListView control. Verwenden Sie Clear die-Methode, um alle Gruppen aus der Auflistung zu entfernen.Use the Clear method to remove all the groups from the collection.

Hinweis

Die RemoveMethoden RemoveAt, und Clear entfernen Gruppen aus der Auflistung, entfernen aber keine Elemente aus dem ListView -Steuerelement.The Remove, RemoveAt, and Clear methods remove groups from the collection, but do not remove any items from the ListView control. Wenn in der ListView.Groups Auflistung keine Gruppen vorhanden sind, ist die Gruppierungs Funktion deaktiviert, und alle Elemente im Steuerelement werden normal angezeigt.If there are no groups in the ListView.Groups collection, the grouping feature is disabled and all items in the control are displayed normally.

Die AddRange - Clear Methode und die-Methode sind nützlich, wenn Sie mehrere Möglichkeiten zum Gruppieren der Elemente ListView in einem-Steuerelement bereitstellen möchten.The AddRange and Clear methods are useful when you want to provide multiple ways to group the items in a ListView control. Erstellen Sie zu diesem Zweck mehrere Gruppen Arrays.To do this, create multiple group arrays. Um die Gruppierung zu ändern, verwenden Sie Clear zuerst die-Methode, um alle Gruppen aus der Auflistung zu entfernen AddRange , und verwenden Sie dann die-Methode, um das nächste Array von Gruppen hinzuzufügen, die angezeigt werden.To change the grouping, first use the Clear method to remove all the groups from the collection, then use the AddRange method to add the next array of groups to display.

Verwenden Sie CopyTo die-Methode, um die Gruppen in einer Auflistung in ein kompatibles Array zu kopieren, beginnend bei einem angegebenen Index.Use the CopyTo method to copy the groups in a collection to a compatible array starting at a specified index. Dies ist beispielsweise hilfreich, wenn Sie die Gruppen in der Auflistung mithilfe der Array.Sort -Methode sortieren möchten.This is useful, for example, when you want to sort the groups in the collection using the Array.Sort method. Zu diesem Zweck kopieren Sie die Gruppen in ein kompatibles Array und Sortieren dann das Array.To do this, copy the groups into a compatible array, then sort the array. Verwenden Sie als nächstes Clear die-Methode, um alle Gruppen aus der Auflistung zu entfernen, AddRange und verwenden Sie dann die-Methode, um das sortierte Array wieder der Auflistung hinzuzufügen.Next, use the Clear method to remove all the groups from the collection, then use the AddRange method to add the sorted array back to the collection.

Verwenden Sie Count die-Eigenschaft, um zu bestimmen, wie viele Gruppen in der Auflistung sind.Use the Count property to determine how many groups are in the collection. Um die Auflistung zu durchlaufen, verwenden Sie IEnumerator die, die GetEnumerator von der-Methode zurückgegeben wird.To iterate through the collection, use the IEnumerator returned from the GetEnumerator method.

Hinweis

Die Gruppierungs Funktion ist nur unter Windows XP und der Windows Server 2003-Familie verfügbar, wenn die Application.EnableVisualStyles Anwendung die-Methode aufruft.The grouping feature is available only on Windows XP and the Windows Server 2003 family when your application calls the Application.EnableVisualStyles method. Unter früheren Betriebssystemen wird jeglicher Code, der sich auf Gruppen bezieht, ignoriert, und die Gruppen werden nicht angezeigt.On earlier operating systems, any code relating to groups will be ignored and the groups will not appear. Folglich funktioniert jeglicher Code, der von der Gruppierungs Funktion abhängt, möglicherweise nicht ordnungsgemäß.As a result, any code that depends on the grouping feature might not work correctly. Möglicherweise möchten Sie einen Test einschließen, der bestimmt, ob die Gruppierungs Funktion verfügbar ist, und alternative Funktionen bereitstellen, wenn Sie nicht verfügbar sind.You might want to include a test that determines whether the grouping feature is available, and provide alternate functionality when it is unavailable. Sie können z. b. bei der Ausführung unter Betriebssystemen, die keine Sortierung nach Gruppe unterstützen, eine alternative Sortierung bereitstellen.For example, you might want to provide alternate sorting when running on operating systems that do not support sorting by group.

Die Funktion "Einfügemarke" wird von derselben Bibliothek bereitgestellt, die das Feature "Betriebssystem Designs" enthält.The insertion mark feature is provided by the same library that provides the operating system themes feature. Um die Verfügbarkeit dieser Bibliothek zu überprüfen, müssen FeatureSupport.IsPresent(Object) Sie die-Methoden Überladung OSFeature.Themes aufrufen und den-Wert übergeben.To check for the availability of this library, call the FeatureSupport.IsPresent(Object) method overload and pass in the OSFeature.Themes value.

Eigenschaften

Count Count Count Count

Ruft die Anzahl der Gruppen in der Auflistung ab.Gets the number of groups in the collection.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Ruft eine ListViewGroup am angegebenen Index in der Auflistung ab oder legt diese fest.Gets or sets the ListViewGroup at the specified index within the collection.

Item[String] Item[String] Item[String] Item[String]

Ruft die ListViewGroup mit dem angegebenen Name-Eigenschaftswert ab oder legt diese fest.Gets or sets the ListViewGroup with the specified Name property value.

Methoden

Add(ListViewGroup) Add(ListViewGroup) Add(ListViewGroup) Add(ListViewGroup)

Fügt der Auflistung den angegebenen ListViewGroup hinzu.Adds the specified ListViewGroup to the collection.

Add(String, String) Add(String, String) Add(String, String) Add(String, String)

Fügt der Auflistung eine neue ListViewGroup unter Verwendung der angegebenen Werte zum Initialisieren der Name-Eigenschaft und der Header-Eigenschaft hinzu.Adds a new ListViewGroup to the collection using the specified values to initialize the Name and Header properties

AddRange(ListViewGroupCollection) AddRange(ListViewGroupCollection) AddRange(ListViewGroupCollection) AddRange(ListViewGroupCollection)

Fügt der Auflistung die Gruppen in einer vorhandenen ListViewGroupCollection hinzu.Adds the groups in an existing ListViewGroupCollection to the collection.

AddRange(ListViewGroup[]) AddRange(ListViewGroup[]) AddRange(ListViewGroup[]) AddRange(ListViewGroup[])

Fügt der Auflistung ein Array von Gruppen hinzu.Adds an array of groups to the collection.

Clear() Clear() Clear() Clear()

Entfernt alle Gruppen aus der Auflistung.Removes all groups from the collection.

Contains(ListViewGroup) Contains(ListViewGroup) Contains(ListViewGroup) Contains(ListViewGroup)

Bestimmt, ob die angegebene Gruppe in der Auflistung enthalten ist.Determines whether the specified group is located in the collection.

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

Kopiert die Gruppen in der Auflistung in ein kompatibles eindimensionales Array, beginnend ab dem angegebenen Index im Zielarray.Copies the groups in the collection to a compatible one-dimensional Array, starting at the specified index of the target array.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Gibt einen Enumerator zurück, mit dem die Auflistung durchlaufen werden kann.Returns an enumerator used to iterate through the collection.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
IndexOf(ListViewGroup) IndexOf(ListViewGroup) IndexOf(ListViewGroup) IndexOf(ListViewGroup)

Gibt den Index der angegebenen ListViewGroup in der Auflistung zurück.Returns the index of the specified ListViewGroup within the collection.

Insert(Int32, ListViewGroup) Insert(Int32, ListViewGroup) Insert(Int32, ListViewGroup) Insert(Int32, ListViewGroup)

Fügt die angegebene ListViewGroup-Klasse am angegebenen Index in die Auflistung ein.Inserts the specified ListViewGroup into the collection at the specified index.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(ListViewGroup) Remove(ListViewGroup) Remove(ListViewGroup) Remove(ListViewGroup)

Entfernt den angegebenen ListViewGroup aus der Auflistung.Removes the specified ListViewGroup from the collection.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

Entfernt die ListViewGroup am angegebenen Index aus der Auflistung.Removes the ListViewGroup at the specified index within the collection.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Explizite Schnittstellenimplementierungen

ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die Auflistung synchronisiert ist (threadsicher).Gets a value indicating whether access to the collection is synchronized (thread safe).

ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf die Auflistung synchronisiert werden kann.Gets an object that can be used to synchronize access to the collection.

IList.Add(Object) IList.Add(Object) IList.Add(Object) IList.Add(Object)

Fügt der ListViewGroup eine neue ListViewGroupCollection hinzu.Adds a new ListViewGroup to the ListViewGroupCollection.

IList.Contains(Object) IList.Contains(Object) IList.Contains(Object) IList.Contains(Object)

Bestimmt, ob die angegebene Wert in der Auflistung enthalten ist.Determines whether the specified value is located in the collection.

IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object) IList.IndexOf(Object)

Gibt den Index des angegebenen Werts in der Auflistung zurück.Returns the index within the collection of the specified value.

IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object) IList.Insert(Int32, Object)

Fügt eine ListViewGroup in die ListViewGroupCollection ein.Inserts a ListViewGroup into the ListViewGroupCollection.

IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob die Auflistung eine feste Größe aufweist.Gets a value indicating whether the collection has a fixed size.

IList.IsReadOnly IList.IsReadOnly IList.IsReadOnly IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob die Auflistung schreibgeschützt ist.Gets a value indicating whether the collection is read-only.

IList.Item[Int32] IList.Item[Int32] IList.Item[Int32] IList.Item[Int32]

Ruft eine ListViewGroup am angegebenen Index in der Auflistung ab oder legt diese fest.Gets or sets the ListViewGroup at the specified index within the collection.

IList.Remove(Object) IList.Remove(Object) IList.Remove(Object) IList.Remove(Object)

Entfernt den ListViewGroup aus der ListViewGroupCollection.Removes the ListViewGroup from the ListViewGroupCollection.

Erweiterungsmethoden

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.Converts an IEnumerable to an IQueryable.

Gilt für:

Siehe auch