带有SubItems的ListView列表

时间:2012-07-18 15:54:51

标签: c# list listview

好的,如何以编程方式将List<ListViewItem.ListViewSubItem>中的项目添加到ListView?我试图加载彼此相邻的3个项目列表,但它似乎不起作用......

这是我现在的一些代码:

    //----------PluginHandler.cs----------/

public static List<ListViewItem> PluginList = new List<ListViewItem>();
public static List<ListViewItem.ListViewSubItem> PluginList2 = new List<ListViewItem.ListViewSubItem>();

PluginList.Clear();
PluginList2.Clear();
foreach (var item in plugin.versions)
{
    var lvitem = new ListViewItem { Text = item.name };
    var lvitem2 = new ListViewItem.ListViewSubItem { Text = item.filename };
    PluginList.Add(lvitem);
    PluginList2.Add(lvitem2);
}

    //----------Form1.cs----------/

lvPluginInfo.Items.AddRange(PluginHandler.PluginList.ToArray());
lvPluginInfo.Items[0].SubItems.AddRange(PluginHandler.PluginList2.ToArray());

我得到的输出并不是我想要的,它不断向右边添加子项而不是将它们添加到彼此旁边,如:

item1a | item2a
item1b | item2b ...

现在我明白了:
item1a | item2a | item1b | item2b | ...

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

你似乎以一种非常奇怪的方式谈论这个问题。我认为这是你打算做的事情吗?

lvPluginInfo.Items.Clear();
foreach (var item in plugin.versions)
{
    var lvitem = new ListViewItem(item.name);
    lvitem.SubItems.Add(item.filename);
    lvPluginInfo.Items.Add(lvitem);
}

您正在进行此操作的问题如下:lvPluginInfo.Items[0].SubItems.AddRange(PluginHandler.PluginList2.ToArray());。您将所有子项添加到第一个ListViewItem。在循环之外添加项目在这里没有多大意义。