我是WinForms的新手,我无法理解如何将其他数据添加到ListViewItem
?我记得在MFC中,我可以使用SetItemDataPtr
,但是如何在WinForms中执行此操作?将附加数据添加到WinForms ListViewItem
1
A
回答
2
可以使用ListViewItem.Tag属性来存储一个参考的任何对象,SetItemDataPtr相当于()。名称属性可以方便地用作字典<>中的键。 Index属性可以用于索引List <>。后两种方法是更好的解决方案,您通常希望将数据与视图分开。
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");
0
其中一种方式:您需要创建自己的班级,例如MyItem
并将您的物品放入List<MyItem>
。然后使用数据绑定。类MyItem
应该实现ToString()
返回字符串的方法将显示在ListView中。
5
最推荐的方法是创建自己的类,从ListViewItem
派生,并将此类的实例添加到ListView
。这样您可以将任何数据存储在项目中。
这比使用Tag
属性更好,因为几个原因:
- 你的项目的数据类型可以是安全的,你就不必从Object强制每个访问。
- 您可以存储多个值。
- 在面向对象编程方面它更加正确。
- 您可以将
Tag
属性免费留作未来可能的扩展使用。
相关问题
- 1. 如何将id附加到ListViewItem?
- 2. 将组合框添加到ListViewItem
- 3. 将事件添加到WinForms?
- 4. 将数据附加到dropzone
- 5. Winforms将列添加到数据绑定数据网格
- 6. ExtJS将附加数据添加到表单的帖子中
- 7. 将数据帧附加到CSV时添加运行编号
- 8. 如何将附加数据添加到Django消息中?
- 9. 如何将附加数据添加到mule有效载荷?
- 10. 将附加数据附加到PHP中的数组中
- 11. 添加附件到ListInstance数据节点?
- 12. 添加附加参数到函数
- 13. 如何将数据网格添加到winforms中的组合框?
- 14. 将附加数据添加到由Django串化器返回的模型数据
- 15. 添加类以附加数据
- 16. 将数据添加到arraylist
- 17. 将数据添加到GraphViewSeries
- 18. 将数据添加到表
- 19. 将数据添加到DataGridView
- 20. 将数据添加到SQLite
- 21. 将数据添加到plist
- 22. 将数据添加到ConnectableObservable
- 23. 将图像添加到winforms复选框
- 24. C#WinForms将名称添加到矩形?
- 25. ListViewItem添加了更多次
- 26. ListViewItem的隐式添加ListViewSubItem
- 27. 在Splitview中添加ListviewItem
- 28. 附加/添加到容器
- 29. 将用户数据附加到AXObserver
- 30. 将POST数据附加到BackgroundDownloader
噢,非常感谢) – 2010-12-06 20:50:26
@Sanja Melnichuk:索引不完全适用于存储项目中的任意数据,因为索引也控制列表中项目的顺序。名称有一些限制,如不支持名称中的空格,并且不支持具有相同名称的多个项目。我强烈建议从ListViewItem派生一个类,并将数据定义为此项的成员。看到我的回答如下... – Ran 2010-12-06 20:57:42