ListViewItem.Group Proprietà

Definizione

Ottiene o imposta il gruppo cui è assegnato l'elemento.

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

Valore della proprietà

Oggetto ListViewGroup cui è assegnato l'elemento.

Esempio

Nell'esempio di codice seguente viene illustrato come usare la Group proprietà in un'applicazione che organizza ListView gli elementi in base al valore dell'elemento secondario nella visualizzazione dettagli. Questa forma di raggruppamento è simile al raggruppamento usato in Esplora risorse. Nell'esempio i gruppi vengono creati dinamicamente. Per ogni colonna dell'elemento secondario viene creato un gruppo per ogni valore univoco dell'elemento secondario. Per la colonna elemento padre, viene creato un gruppo per ogni lettera iniziale univoca. I gruppi creati per ogni colonna vengono archiviati in una tabella hash insieme al testo dell'elemento secondario o alla lettera iniziale. Quando si fa clic su un'intestazione di colonna, viene recuperata la tabella hash corrispondente a quella colonna. Successivamente, i valori di testo dell'elemento secondario per tale colonna vengono usati come chiavi della tabella hash per recuperare il gruppo corretto per ogni elemento. L'elemento viene quindi assegnato al gruppo usando la Group proprietà .

Questo esempio di codice fa parte di un esempio più grande fornito per la ListView.Groups proprietà.

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

Commenti

Utilizzare questa proprietà per impostare il gruppo a cui appartiene un elemento. È anche possibile impostare il gruppo nel ListViewItem costruttore oppure usare questa proprietà per modificare l'appartenenza al gruppo in fase di esecuzione. Se si imposta questa proprietà su null e sono presenti gruppi nell'insieme ListView.Groups , l'elemento verrà visualizzato nel gruppo predefinito, con l'etichetta di intestazione "DefaultGroupSystem.Windows.Forms". Il gruppo predefinito non è contenuto nella ListView.Groups raccolta e non può essere modificato. È principalmente utile nel debug per assicurarsi che tutti gli elementi siano stati aggiunti correttamente ai gruppi.

Nota

ListView i gruppi sono disponibili solo in Windows XP e nella famiglia Windows Server 2003 (Windows XP Home Edition, Windows XP Professional, Windows Server 2003). Per ulteriori informazioni, vedere l'argomento relativo ai cenni preliminari su ListViewGroup.

Si applica a

Vedi anche