2012-01-31 27 views
0

したがって、ListViewを使用してデータを入力しようとしています。Listview - データを追加する

ListViewItem item = new ListViewItem("Test"); 
item.SubItems.Add("1"); 
item.SubItems.Add("2"); 
MyListView.Items.Add(item); 

さて、私の避難所は、検索し、読み、私はちょうど項目/サブ項目がどのように動作するかを把握することはできませんので、愚かな原因を感じられて。

上記のコードは何もしません:/

 foreach (Ingredient o in list) 
     { 
      ListViewItem lvi = new ListViewItem(); 

      lvi.Text = o.iName; 
      lvi.SubItems.Add(o.iUnit); 
      lvi.SubItems.Add(Convert.ToString(o.iCalories)); 
      listView1.Items.Add(lvi); 

     } 

それは今働かない、しかし、私はもはや項目へのアクセス権を持っています。 アイテムを取り戻すか、アイテム内のアイテムを変更する方法を知りますか?

答えて

2

これは動作するはずです:

私はフィールドの数を知っている必要はありません一般的な方法にこれを作るにはどうすればよい
viewList.View = View.Details; 

viewList.Columns.Add("Key"); 
viewList.Columns.Add("Value"); 

ListViewItem lvi1 = new ListViewItem(); 

lvi1.Text = "Key"; 
lvi1.SubItems.Add("Value"); 
viewList.Items.Add(lvi1); 
+0

ちょっと待って、私はここで何が間違っているか知っています。 MyListViewが自分のフォームのリストビューに接続されていませんか? どうすればいいですか? –

+0

'ListView'コントロールはフォームと同じクラスにありませんか?確かにそうすべきだ。 – jp2code

0

各サブアイテムは、ListViewの列です。このため、myListViewには、上記のコードに基づいて3つの列が設定されている必要があります。

上記の例では、Testは第1列にあり、第2列には1、第3列には2となります。あなたのListView制御で

+0

私は3つの列をUIで作成しましたが、これは悪いですか? http://s18.postimage.org/v2odlhmp3/List_View.jpg –

0

、あなたがSubItemsを見たい場合は詳細Viewスタイルを設定する必要があります。

例:

MyListView.View = View.Details; 
+0

私はそれを働かせました。しかし、どのように私はListView内のものを別のクラスから変更するのですか? –

+0

あなたはあなたのクラスの中で欲しいことをするためのパブリックメソッドを書く必要があります。 – jp2code

1
listView1.Items.Clear(); 
     listView1.View = View.Details; 

     List<Ingredient> list = controller.FindAllIngredients(); 

     foreach (Ingredient o in list) 
     { 
      ListViewItem lvi = new ListViewItem(); 

      lvi.Text = o.iName; 
      lvi.SubItems.Add(o.iUnit); 
      lvi.SubItems.Add(Convert.ToString(o.iCalories)); 
      listView1.Items.Add(lvi); 

     } 

。 例えば、別のフィールドを追加した場合、Category to Ingridientはこのメソッドは動作しません。 クラスと列の数に依存せず、すべてのリストビューにも使いたいですか?

関連する問題