我有一个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)
答案 0 :(得分:0)
您可以尝试这种方法来查看是否能够以数组格式添加项目。感谢
//首先添加列
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}); }
答案 1 :(得分:0)
在第一个循环的第一列添加项目时,这不能解决您的问题,但这会产生您想要的相同输出
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);
}