Dans VS2005, en utilisant C #, j'ai une application de formulaires avec une liste de réception. Je peux ajouter des articles à la liste View bien. Cependant, dès que j'essaie de trier ces éléments en groupes, ils n'apparaissent pas. Je sais que les groupes n'apparaissent pas quand ils sont vides, mais j'ai confirmé ces groupes sont pas em> vide. En outre, je am em> paramètre listview.showgroups = true. Si j'ajoute des articles à l'un des groupes, mais pas le second, le groupe "Par défaut" apparaît ... Ce sont les groupes que j'ai ajoutés que je n'apparais pas! Voici le code que j'utilise : P> this.listView.View = View.Details;
this.listView.Columns.Add("Column1");
this.listView.Columns[0].Width = this.listView.Width - 20;
this.listView.HeaderStyle = ColumnHeaderStyle.None;
this.listView.Groups.Add(new ListViewGroup("A"));
this.listView.Groups.Add(new ListViewGroup("D"));
foreach(item i in Class.Items)
{
if (i.Type == Type.A)
this.listView.Groups[0].Items.Add(i.Name);
else
this.listView.Groups[1].Items.Add(i.Name);
}
this.listView.ShowGroups = true;
3 Réponses :
Vous ne devez pas ajouter d'éléments au groupe, mais plutôt ajouter des éléments à la vue de la liste, et pour chaque élément défini son Vous pouvez voir un exemple dans ce lien MSDN < / a> p> Groupe CODE> propriété du groupe souhaité. P>
Ça l'a fait. Hein, cette intuitude ne se sent pas comme une façon naturelle de me faire, mais ... Apparemment, c'est ce qui a eu du sens à Msft à l'époque. Merci!
@Jtoland: Je suppose qu'une raison possible est de pouvoir déplacer facilement des objets d'un groupe à un autre au moment de l'exécution sans avoir à recréer l'article. Mais plus probablement, il est également lié au fait que les groupes ne sont pas affichés sous versions de Windows avant XP, de sorte que les éléments doivent apparaître par le listview code> pour être affiché du tout dans ce environnement.
@Cody: Oui, vous avez probablement raison. Quoi qu'il en soit, je suis d'accord avec Jtoland qui n'est pas vraiment intuitif: D
API de merde, au moins que le groupe ajoutez devrait jeter une exception.
Si les éléments sont ajoutés à la liste de liste tandis que la valeur Le timing est également important. La liste de liste doit être rendue avant que la propriété J'ai découvert cela tout en travaillant dans .NET 4.0. P> showgroups code> est définie sur FALSE, puis la propriété showgroups code> est définie ultérieurement sur true, la boîte de liste apparaîtra vide en affichant groupes (mais avec contenu lorsque showgroups code> est faux). p>
showgroups code> doit être vrai lors de la construction de la liste. P>
showgroups code> est définie sur false. Je l'ai défini dans ma boîte de dialogue montrant événement. P>
Wow merci! Pas très intuitif! On peut s'attendre à ce que la modification des groupes de spectacles lancera une liste de repeindre ...
Essayez ce code:
listView.Groups[0].Items.Add(listView.Items.Add("Item 1"));
+1 pour le tir de l'écran humoristique.