2012-09-16 14 views
5

Come posso nascondere o comprimere un gruppo in ListView?Elenco Visualizza nascondi o comprimi gruppo selezionato

ho solo aggiungere alcuni elementi

contactListView.Items.Add(new ISIMlistViewItem(contact)); 
if (contact.availability == 6) 
    contactListView.Items[contact.identificator].Group = contactListView.Groups["offlineGroup"]; 
else 
    contactListView.Items[contact.identificator].Group = contactListView.Groups["onlineGroup"]; 

E voglio nascondere a volte il offlineGroup.

if (hideOffline == true) 
{ 
    // something like 
    contactListView.Groups["offlineGroup"].Hide(); 
    // or 
    contactListView.Groups["offlineGroup"].Visible = false; 
} 

Ma non so come posso farlo. Posso solo comprarlo e non disegnarlo o c'è qualche possibilità di nasconderlo?

+0

http://typecastexception.com/post/2012/05/09/Extending-C-Listview-with-Collapsible-Groups-%28Part-I%29.aspx – Nasreddine

risposta

4

Sembra che la versione .NET dello ListViewGroup class non fornisca un metodo Collapse o Expand.

Fortunatamente, il controllo nativo ListView lo supporta e un ragazzo fornito an extension to enable expand and collapse.

Usando il suo codice è possibile quindi avere una funzione per impostare lo stato espandere/comprimere con:

private void SetGroupCollapse(GroupState state) 

Per nascondere un gruppo completo Vorrei semplicemente rimuovere tutti gli elementi di questo gruppo.

+3

Ho la stessa idea. Ma penso di poter semplicemente nascondere qualsiasi gruppo che voglio e anche semplicemente mostrarlo di nuovo. Non mi piace spostare gli elementi da un gruppo a un posto temporaneo per nascondere il gruppo e quindi tornare a mostrare il gruppo. Penso che userò l'estensione del collasso. – sczdavos

Problemi correlati