将List <object>转换为ListView项(使用subItems)

时间:2015-12-28 20:13:29

标签: c# winforms listview

我有一个预先配置好的ListView(已经设置了列标题),我想对一个对象列表进行任务,并将 - 作为行列表写入该列表视图 - 我列出的类的特定属性。

我正在尝试关注this existing question,虽然它完美地处理了只有一列的项目,但我不确定如何应用多个子项。

我有一个包含List<Product>的类,该类正在传递给UserControl,该UserControl接受该列表并将每个产品项添加到控件中的ListView。

虽然链接的Q&amp; A处理它并不完整,但我不知道如何将其他属性作为SubItems传入ListView。

我的代码段:Products.Items.AddRange(basket.ProductList.Select(p => new ListViewItem(p.Description)).ToArray());其中pList<Product>

我还希望在列表视图中有项目数量,单价和行总数(已经在课程中计算出来),但我不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

ListViewItem类有很多构造函数。最适合您的情况是ListViewItem Constructor (String[])

  

public ListViewItem(string [] items)

     

使用表示子项的字符串数组初始化ListViewItem类的新实例。

使用您的代码段,就像这样

Products.Items.AddRange(basket.ProductList.Select(p => new ListViewItem(new string[]
{ 
    p.Description,
    p.Quantity.ToString(...),
    p.UnitPrice.ToString(...),
     ...  
})).ToArray());

请注意,ListViewItem.Text实际上是ListView.SubItems[0].Text