c# .net listview 与分组

Posted

技术标签:

【中文标题】c# .net listview 与分组【英文标题】:c# .net listview with grouping 【发布时间】:2015-07-01 23:39:21 【问题描述】:

对 c# 和 .net 不熟悉,我正在尝试将一个包含三列的列表视图组合在一起,即数量、项目描述和价格。我知道如何用数据填充行,我什至可以在下面添加子项,但我不知道如何将它们组合在一起作为主项,并与它绑定的“子”项...

对不起,我很可能是不正确的措辞,但这就是我要拍摄的:

Qty    Description        Price
1      Widget             2.95
       Widget add on       .25
       Widget insurance   1.25
1      Sprocket           4.95
       Sprocket add on     .50

我试图弄清楚如何将主要项目下方的子项目分组,以使其在我选择例如“Widget insurance”时突出显示“Widget add on”和“Wiget”作为一个实体。因此,例如,如果我需要返回并从购买“小部件”中删除“小部件保险”,我可以单击任何连接到“小部件”的项目,例如。 “Widget”、“Widget add on”或“Widget insurance”,它会拉出另一个表单,让我取消选择“Widget insurance”,点击 OK,它会相应地更新列表...

我(糟糕地)将代码拼凑在一起,在视觉上给了我想要的东西,但我认为我完全混淆了 subitem 的使用及其用途:

    string[] newItem = new string[3];

    ListViewItem itm;
    newItem[0] = "1";
    newItem[1] = "Widget";
    newItem[2] = "2.95";
    itm = new ListViewItem(newItem);

    listView1.Items.Add(itm);

    string[] newSubItem = new string[3];

    ListViewItem sub;
    newSubItem[0] = "";
    newSubItem[1] = "Widget add on";
    newSubItem[2] = ".25";
    sub = new ListViewItem(newSubItem);

    listView1.Items.Add(sub);

任何帮助将不胜感激。

【问题讨论】:

可能重复:***.com/questions/729090/… 【参考方案1】:

给你。 “数量”将是 ListViewItem 的文本。 “描述”和“价格”将是 ListViewItem 的子项。

public partial class Form1 : Form

    public Form1()
    
        InitializeComponent();
    

    private void Form1_Load(object sender, EventArgs e)
    
        listView1.View = View.Details;
        listView1.Columns.Add("Qty", 100, HorizontalAlignment.Left);
        listView1.Columns.Add("Description", 100, HorizontalAlignment.Left);
        listView1.Columns.Add("Prie", 100, HorizontalAlignment.Left);

        var details = new[] "Widget", "2.95";
        var item = new ListViewItem("1");
        item.SubItems.AddRange(details);
        listView1.Items.Add(item);


        details = new[] "Widget add on",".25";
        item = new ListViewItem("");
        item.SubItems.AddRange(details);
        listView1.Items.Add(item);
    

希望对您有所帮助。

【讨论】:

但是如果我选择小部件添加,小部件也会突出显示,我该如何使用它?我需要能够将这些“子项”与它们的父项联系在一起,但我无法弄清楚。

以上是关于c# .net listview 与分组的主要内容,如果未能解决你的问题,请参考以下文章

急!!关于C#中Listview的使用,向Listview中添加数据的方法。

C#中listview如何分组显示。?

c# listview 显示 分组 group

winform c# listview 如何 选中行!急!在线等!

winform c# listview 如何 选中行!急!在线等!

为啥不可见的虚拟 ListView 的项目没有索引?