2012-01-31 51 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沒有連接到我的表單中的列表視圖? 我該怎麼做? – 2012-01-31 15:43:34

+0

你的'ListView'控件與你的Form不在同一個類中嗎?它當然應該是。 – jp2code 2012-01-31 16:42:11

0

每個子項都是ListView中的一列。因此,myListView需要根據上述代碼配置3列。

在你上面的例子中,Test將在第一列,第二列爲1,第三列爲2

+0

我已經通過UI做了3列,這是不好的? http://s18.postimage.org/v2odlhmp3/List_View.jpg – 2012-01-31 15:33:31

0

在你ListView控制,您需要將View樣式設置爲詳細,如果你想看到的SubItems

例子:

MyListView.View = View.Details; 
+0

我得到它的工作。但是,如何從另一個類中更改ListView中的內容? – 2012-01-31 15:55:16

+0

你必須編寫一個公開的方法來在課堂上做你想做的事。 – jp2code 2012-01-31 16:40:42

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

     } 

如何讓我這個成不必知道字段的數量的通用方法。 例如,如果我添加了另一個字段,類別爲Ingridient,則此方法不起作用。 還希望將其用於我所有的列表視圖,而不依賴於類和列的數量。