如何在C#中向列表视图添加图片?

4
我有一个窗口应用程序,其中数据通过Json传递。我已经解析了这些数据并且能够在listview中显示出来。
现在我想在其中添加图片。我尝试过很多方法但是都不起作用。 按照我的需求,我需要添加图片。
请指导我如何在列表框中显示这些数据。 以下是我正在使用的代码。
listView1.Columns.Add("brand", 100, HorizontalAlignment.Left);
listView1.Columns.Add("rating", 100, HorizontalAlignment.Left);
listView1.Columns.Add("max_price", 100, HorizontalAlignment.Left);
listView1.SmallImageList = imageList1;

foreach (var item in lstItemDetails)
{
    ListViewItem objListViewItem = new ListViewItem(item.image_medium);
    objListViewItem.SubItems.Add(item.brand);

    objListViewItem.SubItems.Add(item.rating);
    objListViewItem.SubItems.Add(item.max_price);

    if (!string.IsNullOrEmpty(item.rating))
    {
        int rating = int.Parse(item.rating);
        objListViewItem.ImageIndex = rating;
    }
    else
    {
        objListViewItem.ImageIndex = 0;
    }

     listView1.Items.Add(objListViewItem);
}

这里只显示所有位置中最后一个被分配的图像。根据项的评分计数开始对图像进行评级。

请建议更好的解决方法。


如果您有一个项目与图像索引相关,则该索引将变为0。因此,列表中所有具有评级的项目最终都会具有相同的图像。 - MrFox
初始化imageList1的代码丢失了。这很可能是问题的原因。确保添加图像到ImageList中,而不是替换它们。 - Hans Passant
1个回答

4
如果你正在使用ListView,那么使用ObjectListView会给你带来很大的帮助。ObjectListView是一个标准.NET ListView的包装器,提供了几乎所有你想要做的方法,同时还修复了ListView存在的几乎所有问题/缺陷。
例如,它可以通过创建列并调用SetObjects()来构建整个ListView,包括排序、分组和编辑。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接