2012-09-16 16 views
5

ListView içinde bazı grupları nasıl gizleyebilir veya daraltabilirim?ListView Seçilen grubu gizler veya daralt

Sadece bazı öğeleri

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

eklemek Ve bazen offlineGroup gizlemek istiyorum.

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

Ama bunu nasıl yapacağımı bilmiyorum. Sadece çöküp, çizememe ya da gizleme ihtimalim var mı?

+0

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

cevap

4

ListViewGroup class'un .NET sürümü, Collapse veya Expand yöntemini sağlamaz gibi görünüyor.

Neyse ki, yerel ListView denetimi destekliyor ve bir kullanıcı an extension to enable expand and collapse sağladı. Ben sadece bu gruptaki tüm öğeleri kaldırmak tam bir grup gizleme için

private void SetGroupCollapse(GroupState state) 

:

sonra birlikte daraltmak/genişletmek durumunu ayarlamak için bir işlevi olabilir onun kodunu kullanarak.

+3

Aynı fikre sahibim. Ama yine de istediğim grubu gizleyebilirim ve tekrar gösterebilirim. Grubu bir gruptan, grubu gizlemek için biraz geçici yere ve sonra da gruba geri dönmekten hoşlanmam. Daralma uzantısını kullanacağımı düşünüyorum. – sczdavos