Listview - 添加数据

时间:2012-01-31 15:19:27

标签: c# 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);

        }

它现在有效,但是我不再能够访问这些项目了。 我如何知道取回物品或更改物品中的东西?

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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,此方法将不起作用。 还想将它用于我的所有列表视图,独立于类和列数。

答案 2 :(得分:0)

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

在上面的示例中,Test位于第一列,1位于第二列,2位于第三列。

答案 3 :(得分:0)

ListView控件中,如果要查看View,则需要将SubItems样式设置为详细信息

示例:

MyListView.View = View.Details;