我是WinForms的新手,我无法理解如何将其他数据添加到ListViewItem
?我记得在MFC中,我可以使用SetItemDataPtr
但是如何在WinForms中执行此操作?
答案 0 :(得分:5)
最推荐的方法是创建自己的类,派生自ListViewItem
,并将此类的实例添加到ListView
。这样您就可以在项目中存储任何数据。
这比使用Tag
属性要好,原因有以下几点:
Tag
财产免费用于未来可能的扩展程序。答案 1 :(得分:2)
您是否在MSDN上查找了ListViewItem课程?那里有大量的信息和样本。
// Create three items and three sets of subitems for each item.
ListViewItem item1 = new ListViewItem("item1",0);
// Place a check mark next to the item.
item1.Checked = true;
item1.SubItems.Add("1");
item1.SubItems.Add("2");
item1.SubItems.Add("3");
ListViewItem item2 = new ListViewItem("item2",1);
item2.SubItems.Add("4");
item2.SubItems.Add("5");
item2.SubItems.Add("6");
ListViewItem item3 = new ListViewItem("item3",0);
// Place a check mark next to the item.
item3.Checked = true;
item3.SubItems.Add("7");
item3.SubItems.Add("8");
item3.SubItems.Add("9");
答案 2 :(得分:2)
您可以使用ListViewItem.Tag属性存储对任何对象的引用,相当于SetItemDataPtr()。 Name属性可以方便地充当Dictionary<>中的键。并且Index属性可用于索引List<>。后两种方法是更好的解决方案,您通常希望将数据与视图分开。
答案 3 :(得分:0)
其中一种方式:您需要创建自己的类,例如MyItem
并将项目放在List<MyItem>
中。然后使用数据绑定。类MyItem
应该实现ToString()
方法,返回字符串将显示在ListView中。