2011-08-06 10 views
4

私はデータがjson経由で来るwindowsアプリケーションを持っています。私はデータを解析してlistviewに表示することができました。C#のリストビューで画像を追加するには?

今私は画像をinに追加したいと思います。私は多くのことを試しましたが、これは動作しません。 私の必要に応じて。

このデータをリストボックスにどのように表示するか教えてください。

私はこのコードを使用しています。

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

を呼び出すことにより、インデックスは0になります。したがって、リスト内の評価が同じアイテムはすべて同じイメージになります。 – MrFox

+0

imageList1を初期化するコードがありません。それはおそらく問題の原因です。 ImageListに*画像を追加して、ImageListに置き換えないようにしてください。 –

答えて

4

ListViewを使って何かをしているのであれば、自分自身にとって大きな好意を持ち、代わりにObjectListViewを使用してください。 ObjectListViewは、標準的な.NET ListViewを包むラッパーです。あなたが望むことができるすべてのメソッドと、ListViewが持つほとんどの問題やバグの修正を提供します。例えば

、それはあなたの全体のリストビューを構築することができます - 、並べ替え、グループ化、および編集との完全な - ちょうど列を作成して、あなたがイメージをreatingアイテムを持っている場合はSetObjects()

enter image description here

関連する問題