将其他数据添加到WinForms ListViewItem

时间:2010-12-06 20:37:48

标签: c# winforms

我是WinForms的新手,我无法理解如何将其他数据添加到ListViewItem?我记得在MFC中,我可以使用SetItemDataPtr但是如何在WinForms中执行此操作?

4 个答案:

答案 0 :(得分:5)

最推荐的方法是创建自己的类,派生自ListViewItem,并将此类的实例添加到ListView。这样您就可以在项目中存储任何数据。

这比使用Tag属性要好,原因有以下几点:

  • 您的商品数据可以是类型安全的,并且您不必在每次访问时从Object转换。
  • 您可以存储多个值。
  • 在面向对象编程方面更为正确。
  • 您可以将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中。