2011-08-06 97 views
4

我有Windows应用程序,其中数据通过JSON传递我已经解析了数据并能够在listview中显示。如何在C#中的列表视图中添加图像?

现在我想添加图像与英寸我已经尝试了很多哦东西,但这是行不通的。 根据我的需要。

请指导我如何在列表框中显示此数据。

我正在使用此代码。

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); 
} 

这只显示最后分配的图像在所有地方。根据item.rating计数开始评级图像。

请给我更好的解决方法。

+0

如果你有reating图像的项目索引变为0.因此,列表中具有评级的所有项目都以相同的图像结束。 – MrFox

+0

初始化imageList1的代码缺失。所以这可能是问题的原因。确保将*图像添加到ImageList,而不是替换它们。 –

回答

4

如果您正在做任何与ListView有关的事情,那么您会为自己做一件大好事,并使用ObjectListView来代替。 ObjectListView是一个标准的.NET ListView的包装,它提供了几乎所有你想做的事情的方法,并且修复了几乎所有ListView所存在的问题/错误。

例如,它可以建立你的整个的ListView - 完整的排序,分组和编辑 - 仅通过创建列,然后调用SetObjects()

enter image description here

相关问题