0

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 | item1a | item2a | アイテム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 に答える