好的,如何以编程方式将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 | ...
有什么想法吗?谢谢!
答案 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。在循环之外添加项目在这里没有多大意义。