因此,尝试使用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); }
它现在有效,但是我不再能够访问这些项目了。 我如何知道取回物品或更改物品中的东西?
答案 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;