我有一个列表视图,但我想在其中的listviewitems中添加3个属性(例如其中一个是“image”)。
我很好地使用3个属性创建一个自定义类,只是继承ListViewItem,但现在我需要使用MultiSelect,所以它意味着做(像For Each循环):
ListView1.SelectedItems.Item(i).Image
不起作用,因为它返回ListViewItem而不是我的CustomClass
我总能做到:
Ctype(ListView1.selectedItems(i), MyCustomClass).Image
但是一次又一次地使用它似乎是一种浪费/错误的方式吗?
答案 0 :(得分:3)
这就是它的工作原理。 ListView可以存储任何类型的ListItem,并且为了获得派生的强制转换的属性,你必须强制转换它。你正确地做到了。
答案 1 :(得分:2)
将ListViewItem
子类化为附加自定义属性并不是一个特别好的主意。该类为此特别提供了Tag
property,您应该使用自己的对象而不是子类来填充它。它可能在语法方面没有太大的区别,但它是一个更好的设计。