Listview - 添加数据

问题描述:

因此,试图使用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); 

     } 

它现在,但我不再有机会获得物品。 如何知道取回物品或更改物品中的物品?

这应该工作:

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

每个子项都是ListView中的一列。因此,myListView需要根据上述代码配置3列。

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

+0

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

在你ListView控制,您需要将View样式设置为详细,如果你想看到的SubItems

例子:

MyListView.View = View.Details; 
+0

我得到它的工作。但是,如何从另一个类中更改ListView中的内容? – 2012-01-31 15:55:16

+0

你必须编写一个公开的方法来在课堂上做你想做的事。 – jp2code 2012-01-31 16:40:42

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,则此方法不起作用。 还希望将其用于我所有的列表视图,而不依赖于类和列的数量。