在VS2005中,使用C#,我有一个带有ListView的Forms应用程序。我可以将项目添加到列表视图中。但是,只要我尝试将这些项目分组,它们就不会出现。我知道群组在空闲时不会出现,但我已经确认这些群组不为空。另外,我是设置listView.ShowGroups = true。如果我将项目添加到其中一个组而不是第二个组,则“默认”组会显示...它只是我添加的组没有出现!
这是我正在使用的代码:
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;
有没有人知道为什么我的小组不会出现?这是我看到的屏幕截图:
答案 0 :(得分:11)
您不应该向组添加项目,而是将项目添加到列表视图中,并且对于每个项目,将其Group
属性设置为所需的组。
您可以在此MSDN link
中查看示例答案 1 :(得分:7)
如果在ShowGroups
值设置为false且ShowGroups
属性稍后设置为true时将项目添加到列表视图中,则列表框在显示组时将显示为空白(但内容为ShowGroups
是假的。)
ShowGroups
必须为真。
时机也很重要。需要在ShowGroups
属性设置为false之前呈现列表框。我在显示的对话框中设置了它。
我在.Net 4.0中工作时发现了这一点。
答案 2 :(得分:0)
尝试以下代码:
listView.Groups[0].Items.Add(listView.Items.Add("Item 1"));