0

好的,我如何以编程方式将项目从 an 添加List<ListViewItem.ListViewSubItem>到 an 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());

我得到的输出并不是我真正想要的,它不断在右侧添加子项,而不是像这样将它们彼此相邻添加:

项目1a | item2a
item1b | 项目2b ...

现在我得到:
item1a | 项目2a | 项目1b | 项目2b | ...

有任何想法吗?谢谢!

4

1 回答 1

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。在循环之外添加项目在这里没有多大意义。

于 2012-07-18T16:19:56.970 回答