将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)
您可以尝试这种方法来查看是否能够以数组格式添加项吗。感谢
//首先添加列
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);
}