ListViewGroupCollection ListViewGroupCollection ListViewGroupCollection ListViewGroupCollection Class

Definizione

Rappresenta la raccolta dei gruppi all'interno di un controllo ListView.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
Ereditarietà
ListViewGroupCollectionListViewGroupCollectionListViewGroupCollectionListViewGroupCollection
Attributi
Implementazioni

Esempi

Nell'esempio seguente viene illustrato come utilizzare il ListView caratteristica di raggruppamento per organizzare gli elementi dal valore dell'elemento secondario nella visualizzazione dettagli.The following example demonstrates how to use the ListView grouping feature to organize items by subitem value in the details view. Questa forma di raggruppamento è simile al raggruppamento usato in Windows Explorer.This form of grouping is similar to the grouping used in Windows Explorer. Nell'esempio, i gruppi vengono creati in modo dinamico.In the example, the groups are created dynamically. Per ogni colonna dell'elemento secondario, viene creato un gruppo per ogni valore univoco dell'elemento secondario.For each subitem column, one group is created for each unique subitem value. Per la colonna dell'elemento padre, viene creato un gruppo per ogni lettera iniziale univoco.For the parent item column, one group is created for each unique initial letter. Fare clic sull'intestazione di una colonna consente di ordinare gli elementi in gruppi creati per tale colonna.Clicking the header of a column sorts the items into the groups created for that column. Fare di nuovo la stessa intestazione di colonna inverte l'ordine dei gruppi.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
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 'New
    
    <STAThread()> _
    Shared Sub Main()
        Application.EnableVisualStyles()
        Application.Run(New ListViewGroupsExample())
    End Sub 'Main
    
    ' 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 'myListView_ColumnClick
    
    ' 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 'SetGroups

    ' 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 'New
        
        ' 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

Commenti

Usare il ListView.Groups proprietà da ottenere il ListViewGroupCollection associata a un ListView controllo.Use the ListView.Groups property to get the ListViewGroupCollection associated with a ListView control. Questa raccolta contiene il ListViewGroup gli oggetti che rappresentano i gruppi mostrati nel controllo quando il ListView.View proprietà è impostata su un valore diverso da View.List.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. Tutti gli elementi che non sono assegnati a un gruppo verranno visualizzato nel gruppo predefinito, che contiene l'etichetta dell'intestazione "DefaultGroup{0}".Any items that are not assigned to a group will appear in the default group, which has the header label "DefaultGroup{0}". Il gruppo predefinito non è inclusa nel ListView.Groups insieme e non può essere modificato.The default group is not contained in the ListView.Groups collection, and cannot be altered. È particolarmente utile nel debug per garantire che tutti gli elementi siano stati correttamente aggiunti ai gruppi.It is primarily useful in debugging to ensure that all items have been properly added to groups. Se nessun gruppo di nel ListView.Groups insieme, la caratteristica di raggruppamento è disabilitato.If there are no groups in the ListView.Groups collection, the grouping feature is disabled.

Usare il Add metodo per aggiungere un solo gruppo alla raccolta.Use the Add method to add a single group to the collection. Usare il Insert metodo per aggiungere un gruppo in un particolare indice all'interno della raccolta.Use the Insert method to add a group at a particular index within the collection. Per rimuovere un gruppo, usare il Remove (metodo).To remove a group, use the Remove method. Usare il RemoveAt metodo per rimuovere il gruppo in un particolare indice.Use the RemoveAt method to remove the group at a particular index.

Non è possibile aggiungere un ListViewGroup alla raccolta più volte.You cannot add a ListViewGroup to the collection more than once. Per riposizionare un gruppo all'interno della raccolta, è necessario innanzitutto rimuovere dalla raccolta e quindi inserita nella posizione desiderata.To reposition a group within the collection, it must first be removed from the collection, and then inserted at the desired location. Usare il Contains metodo per determinare se un particolare gruppo è già nella raccolta.Use the Contains method to determine whether a particular group is already in the collection. Per recuperare l'indice di un gruppo all'interno della raccolta, usare il IndexOf (metodo).To retrieve the index of a group within the collection, use the IndexOf method. È possibile ottenere o impostare il gruppo in un particolare indice con il Item[Int32] indicizzatore.You can get or set the group at a particular index with the Item[Int32] indexer.

Usare il AddRange metodo per aggiungere più gruppi all'insieme.Use the AddRange method to add multiple groups to the collection. È possibile aggiungere più gruppi come una matrice di gruppi o come un ListViewGroupCollection recuperato mediante il ListView.Groups proprietà di un altro ListView controllo.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. Usare il Clear metodo per rimuovere tutti i gruppi dalla raccolta.Use the Clear method to remove all the groups from the collection.

Nota

Il Remove, RemoveAt, e Clear metodi di rimuovere i gruppi dalla raccolta, ma non rimuovere tutti gli elementi dal ListView controllo.The Remove, RemoveAt, and Clear methods remove groups from the collection, but do not remove any items from the ListView control. Se nessun gruppo di nel ListView.Groups insieme, la caratteristica di raggruppamento è disabilitata e tutti gli elementi nel controllo vengono visualizzati normalmente.If there are no groups in the ListView.Groups collection, the grouping feature is disabled and all items in the control are displayed normally.

Il AddRange e Clear metodi sono utili quando si desidera fornire diversi modi per raggruppare gli elementi in un ListView controllo.The AddRange and Clear methods are useful when you want to provide multiple ways to group the items in a ListView control. A tale scopo, creare più array di gruppo.To do this, create multiple group arrays. Per modificare il raggruppamento, utilizzare innanzitutto le Clear metodo per rimuovere tutti i gruppi dalla raccolta, quindi usare il AddRange metodo per aggiungere la matrice di gruppi per la visualizzazione successiva.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.

Usare il CopyTo metodo per copiare i gruppi in una raccolta in una matrice compatibile, iniziando in corrispondenza dell'indice specificato.Use the CopyTo method to copy the groups in a collection to a compatible array starting at a specified index. Ciò risulta utile, ad esempio, quando si desidera ordinare i gruppi nella raccolta usando la Array.Sort (metodo).This is useful, for example, when you want to sort the groups in the collection using the Array.Sort method. A tale scopo, copiare i gruppi in una matrice compatibile, quindi ordinare la matrice.To do this, copy the groups into a compatible array, then sort the array. Successivamente, usare il Clear metodo per rimuovere tutti i gruppi dalla raccolta, quindi usare il AddRange metodo per aggiungere la matrice ordinata alla raccolta.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.

Usare il Count proprietà per determinare il numero di gruppi presenti nella raccolta.Use the Count property to determine how many groups are in the collection. Per scorrere la raccolta, usare il IEnumerator restituiti dai GetEnumerator (metodo).To iterate through the collection, use the IEnumerator returned from the GetEnumerator method.

Nota

La caratteristica di raggruppamento è disponibile solo in Windows XP e in Windows Server 2003 quando l'applicazione chiama il Application.EnableVisualStyles (metodo).The grouping feature is available only on Windows XP and the Windows Server 2003 family when your application calls the Application.EnableVisualStyles method. Nei sistemi operativi precedenti, qualsiasi codice che fa riferimento a gruppi verrà ignorati e non verranno visualizzati i gruppi.On earlier operating systems, any code relating to groups will be ignored and the groups will not appear. Di conseguenza, qualsiasi codice che dipende la caratteristica di raggruppamento potrebbe non funzionare correttamente.As a result, any code that depends on the grouping feature might not work correctly. Si desidera includere un test che determina se la caratteristica di raggruppamento è disponibile e forniscono funzionalità alternativa quando non è disponibile.You might want to include a test that determines whether the grouping feature is available, and provide alternate functionality when it is unavailable. Potrebbe ad esempio, si desidera fornire un ordinamento alternativo durante l'esecuzione nei sistemi operativi che non supportano l'ordinamento dal gruppo.For example, you might want to provide alternate sorting when running on operating systems that do not support sorting by group.

La funzionalità del segno di inserimento viene fornita dalla libreria stessa che fornisce la funzionalità temi del sistema operativo.The insertion mark feature is provided by the same library that provides the operating system themes feature. Per verificare la disponibilità di questa raccolta, chiamare il FeatureSupport.IsPresent(Object) overload del metodo e passare il OSFeature.Themes valore.To check for the availability of this library, call the FeatureSupport.IsPresent(Object) method overload and pass in the OSFeature.Themes value.

Proprietà

Count Count Count Count

Ottiene il numero di gruppi nell'insieme.Gets the number of groups in the collection.

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

Ottiene o imposta il gruppo ListViewGroup in corrispondenza dell'indice specificato all'interno dell'insieme.Gets or sets the ListViewGroup at the specified index within the collection.

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

Ottiene o imposta l'oggetto ListViewGroup con il valore della proprietà Name specificato.Gets or sets the ListViewGroup with the specified Name property value.

Metodi

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

Aggiunge l'oggetto ListViewGroup specificato alla raccolta.Adds the specified ListViewGroup to the collection.

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

Inizializza una nuova istanza della classe ListViewGroup sull'insieme utilizzando il valore specificato per inizializzare le proprietà Name e Header.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)

Aggiunge i gruppi di un oggetto ListViewGroupCollection esistente all'insieme.Adds the groups in an existing ListViewGroupCollection to the collection.

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

Aggiunge una matrice di gruppi all'insieme.Adds an array of groups to the collection.

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

Rimuove tutti i gruppi dall'insieme.Removes all groups from the collection.

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

Consente di determinare se il gruppo specificato è contenuto nell'insieme.Determines whether the specified group is located in the collection.

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

Copia i gruppi dell'insieme in una matrice compatibile unidimensionale Array, a partire dall'indice specificato della matrice di destinazione.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)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

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

Restituisce un enumeratore che consente di scorrere l'insieme.Returns an enumerator used to iterate through the collection.

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

Funge da funzione hash predefinita.Serves as the default hash function.

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

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

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

Restituisce l'indice dell'oggetto ListViewGroup specificato all'interno dell'insieme.Returns the index of the specified ListViewGroup within the collection.

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

Inserisce l'oggetto ListViewGroup specificato nell'insieme in corrispondenza dell'indice specificato.Inserts the specified ListViewGroup into the collection at the specified index.

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

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

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

Rimuove l'oggetto ListViewGroup specificato dalla raccolta.Removes the specified ListViewGroup from the collection.

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

Rimuove l'oggetto ListViewGroup in corrispondenza dell'indice specificato all'interno dell'insieme.Removes the ListViewGroup at the specified index within the collection.

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

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Implementazioni dell'interfaccia esplicita

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

Ottiene un valore che indica se l'accesso alla raccolta è sincronizzato (thread-safe).Gets a value indicating whether access to the collection is synchronized (thread safe).

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

Ottiene un oggetto che può essere usato per sincronizzare l'accesso alla raccolta.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)

Consente di aggiungere un nuovo oggetto ListViewGroup a ListViewGroupCollection.Adds a new ListViewGroup to the ListViewGroupCollection.

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

Consente di determinare se il valore specificato è contenuto nell'insieme.Determines whether the specified value is located in the collection.

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

Restituisce l'indice all'interno dell'insieme del valore specificato.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)

Inserisce un gruppo ListViewGroup nell'insieme ListViewGroupCollection.Inserts a ListViewGroup into the ListViewGroupCollection.

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

Ottiene un valore che indica se la dimensione della raccolta è fissa.Gets a value indicating whether the collection has a fixed size.

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

Ottiene un valore che indica se la raccolta è di sola lettura.Gets a value indicating whether the collection is read-only.

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

Ottiene o imposta il gruppo ListViewGroup in corrispondenza dell'indice specificato all'interno dell'insieme.Gets or sets the ListViewGroup at the specified index within the collection.

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

Rimuove il gruppo ListViewGroup dall'insieme ListViewGroupCollection.Removes the ListViewGroup from the ListViewGroupCollection.

Extension Methods

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

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

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

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

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

Consente la parallelizzazione di una query.Enables parallelization of a query.

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

Converte un' IEnumerable a un IQueryable.Converts an IEnumerable to an IQueryable.

Si applica a

Vedi anche