2012-09-16 18 views
5

¿Cómo puedo ocultar o colapsar algún grupo en ListView?ListView ocultar o contraer el grupo seleccionado

acabo de añadir algunos elementos

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"]; 

y quiero a veces ocultar la offlineGroup.

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

Pero no sé cómo puedo hacer eso. ¿Puedo colapsarlo y no dibujarlo o hay alguna posibilidad de ocultarlo?

+0

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

Respuesta

4

Parece que la versión .NET del ListViewGroup class no proporciona un método Collapse o Expand.

Afortunadamente, el control nativo ListView lo admite y un tipo proporcionó an extension to enable expand and collapse.

Usando su código a continuación, puede tener una función para establecer el estado de expandir/contraer con:

private void SetGroupCollapse(GroupState state) 

Para ocultar un grupo completo Me basta con quitar todos los elementos de este grupo.

+3

Tengo la misma idea. Pero pensé que simplemente puedo esconder cualquier grupo que quiera y también simplemente mostrarlo de nuevo. No me gusta mover elementos de un grupo a un lugar temporal para ocultar el grupo y luego volver al grupo de muestra. Creo que usaré la extensión de colapso. – sczdavos

Cuestiones relacionadas