2012-09-16 14 views
5

Wie kann ich eine Gruppe in ListView ausblenden oder ausblenden?ListView Ausgewählte Gruppe ausblenden oder ausblenden

Ich füge nur einige Elemente

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

Und ich möchte manchmal die offlineGroup verstecken.

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

Aber ich weiß nicht, wie kann ich das tun. Kann ich es einfach zusammenbrechen und nicht zeichnen oder gibt es eine Möglichkeit, es zu verstecken?

+0

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

Antwort

4

Es scheint, dass die .NET-Version der ListViewGroup class keine Collapse oder Expand Methode zur Verfügung stellt.

Glücklicherweise unterstützt die native ListView Steuerung es und ein Typ an extension to enable expand and collapse zur Verfügung gestellt.

Mit seinen Code Sie können dann eine Funktion haben, die Aufklappen/Zuklappen Zustand mit setzen:

private void SetGroupCollapse(GroupState state) 

Für eine komplette Gruppe versteckt ich einfach alle Elemente in dieser Gruppe entfernen würde.

+3

Ich habe die gleiche Idee. Aber ich kann einfach jede gewünschte Gruppe verstecken und auch einfach wieder zeigen. Ich mag es nicht, Elemente von einer Gruppe zu einem temporären Ort zu verschieben, um die Gruppe zu verbergen und dann zurück, um die Gruppe anzuzeigen. Ich denke, dass ich Kollaps-Erweiterung verwenden werde. – sczdavos