我有来自数据库的成员名称。现在我需要在列表框中显示这些项目。我有另一个来自数据库的表产品。
根据客户要求,我需要在同一个列表框中显示这些项目。
是否可以将两个项目列表放在由空格分隔的同一个列表框中?点击某个项目是否可以触发某些操作?
有人可以帮忙吗?
如果列表框无法实现,是否可以在列表视图中在一个用白色空格分隔的列中添加两个组,如上图所示?
答案 0 :(得分:2)
以下是带有组的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);
希望这些帮助。
答案 1 :(得分:0)