Поделиться через


ListViewItem.Group Свойство

Определение

Получает или задает группу, которой присвоен данный элемент.

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

Значение свойства

Объект ListViewGroup, которому присвоен данный элемент.

Примеры

В следующем примере кода показано, как Group можно использовать свойство в приложении, которое упорядочивает элементы по значению подэлемента ListView в представлении сведений. Эта форма группировки аналогична группировке, используемой в проводнике Windows. В этом примере группы создаются динамически. Для каждого столбца подэлемента создается одна группа для каждого уникального значения подэлемента. Для столбца родительского элемента создается одна группа для каждой уникальной начальной буквы. Группы, созданные для каждого столбца, хранятся в хэш-таблице вместе с текстом подэлемента или начальной буквой. При щелчке заголовка столбца извлекается хэш-таблица, соответствующая этому столбцу. Затем текстовые значения подэлементов для этого столбца используются в качестве ключей хэш-таблицы, чтобы получить правильную группу для каждого элемента. Затем элемент назначается группе с помощью Group свойства .

Этот пример кода является частью более крупного примера, предоставленного ListView.Groups для свойства .

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

Комментарии

Используйте это свойство, чтобы задать группу, к которой принадлежит элемент. Вы также можете задать группу в конструкторе ListViewItem или использовать это свойство для изменения членства в группе во время выполнения. Если для этого свойства задано значение null , а в ListView.Groups коллекции есть группы, элемент будет отображаться в группе по умолчанию с меткой заголовка DefaultGroupSystem.Windows.Forms. Группа по умолчанию не содержится в ListView.Groups коллекции и не может быть изменена. Это в первую очередь полезно при отладке, чтобы убедиться, что все элементы были правильно добавлены в группы.

Примечание

ListView Группы доступны только в Windows XP и семействе Windows Server 2003 (Windows XP Home Edition, Windows XP Professional, Windows Server 2003). Дополнительные сведения см. в обзоре ListViewGroup.

Применяется к

См. также раздел