Вот очень простой пример ListView с группами:
В этой статье MSDN есть более сложный пример: ListViewGroup Class
Помните, что группы являются толькоподдерживается в определенных операционных системах (XP и выше, я думаю), поэтому вам нужно будет учесть это в своем коде.
listView1.View = View.Details;
listView1.Columns.Add(new ColumnHeader() { Width=-1 });
listView1.HeaderStyle = ColumnHeaderStyle.None;
ListViewGroup membersGroup = new ListViewGroup("Members", HorizontalAlignment.Left);
listView1.Groups.Add(membersGroup);
listView1.Items.Add(new ListViewItem() { Text = "Member 1", Group = membersGroup });
listView1.Items.Add(new ListViewItem() { Text = "Member 2", Group = membersGroup });
ListViewGroup productsGroup = new ListViewGroup("Products", HorizontalAlignment.Left);
listView1.Groups.Add(productsGroup);
listView1.Items.Add(new ListViewItem() { Text = "Product 1", Group = productsGroup });
listView1.Items.Add(new ListViewItem() { Text = "Product 2", Group = productsGroup });
А вот пример использования TreeView:
var members = new[]
{
new { MemberName = "Member 1", MemberId = 1 },
new { MemberName = "Member 2", MemberId = 2 }
};
var products = new[]
{
new { ProductName = "Product 1", ProductId = 1 },
new { ProductName = "Product 2", ProductId = 2 }
};
TreeNode membersNode = new TreeNode("Members", members.Select(m => new TreeNode(m.MemberName)).ToArray());
TreeNode productsNode = new TreeNode("Products", products.Select(p => new TreeNode(p.ProductName)).ToArray());
treeView1.Nodes.Add(membersNode);
treeView1.Nodes.Add(productsNode);
Надеюсь, что это поможет.