将ListViewItems重复添加到多列中

本文关键字:添加 ListViewItems | 更新日期: 2023-09-27 18:22:37

我有一个在设计视图中指定了两列的ListView,我试图将两个记录列表添加到它们各自的列中,但我很难将列表放在正确的位置。

我尝试了几种方法,最接近的是:

listViewFilterDescription.View = View.Details;
ListViewItem item1 = new ListViewItem();
for (int i = 0; i < recordSet.Rows.Count; i++)
{
    item1.SubItems.Add(recordSet.Rows[i]["description"].ToString());
}
ListViewItem item2 = new ListViewItem();
for (int i = 0; i < recordSet.Rows.Count; i++)
{
    item2.SubItems.Add(recordSet.Rows[i]["definition"].ToString());
}
listViewFilterDescription.Items.AddRange(new ListViewItem[] { item1, item2 });

虽然这将for循环的所有内容添加到两个ListViewItems,但实际上它只将每个循环的第一条记录添加到ListView,并且只将其添加到第二列:

Column 1  |Column 2
==========|==========
          |ForLoop1(1)
          |ForLoop2(1)

我怎样才能把它做成这样?:

Column 1     |Column 2
=============|=============
ForLoop1(1)  |ForLoop2(1)
ForLoop1(2)  |ForLoop2(2)
ForLoop1(3)  |ForLoop2(3)

将ListViewItems重复添加到多列中

您可以尝试这种方法来查看是否能够以数组格式添加项吗。感谢

//首先添加列

    listViewFilterDescription.Columns.Add("Id");
    listViewFilterDescription.Columns.Add("Name");

//将项目[]添加到您的列表

var item1 = new ListViewItem(new[] {"Car", "Boat", "AirPlane"});
var item2 = new ListViewItem(new[] {"Sheila", "Catherine", "Franz"});
listViewFilterDescription.Items.Add(item1);
listViewFilterDescription.Items.Add(item2);
OR 
    ListViewItem[] item = {item1,item2}; 
    for(int i=0;i<2;i++){ ListViewItem myItem = item[i];
    listViewFilterDescription.Items.AddRange(new ListViewItem[] { myItem}); }    

这并不能解决您在第一个循环的第一列添加项目的问题,但这将产生与相同的输出

  for (int i = 0; i < recordSet.Rows.Count; i++)
    {
        ListViewItem item1 = item1.SubItems.Add(recordSet.Rows[i]["description"].ToString());
        item1.SubItems.Add(recordSet.Rows[i]["definition"].ToString());
        listViewFilterDescription.Items.Add(lvi);
    }