переопределить класс / добавить свойства в ListviewItem (vb.net) - PullRequest
2 голосов
/ 13 января 2010

У меня есть просмотр списка, но я бы хотел добавить 3 свойства (например, одно из них "изображение") к элементам списка в нем.
Я был в порядке с созданием пользовательского класса с 3 свойствами и просто наследовал ListViewItem, но теперь мне нужно использовать MultiSelect, так что это означает делать вещи вроде (в циклах For Each):

ListView1.SelectedItems.Item(i).Image
не работают, потому что он возвращает ListViewItem, а не мой CustomClass.
Я всегда мог сделать:
Ctype(ListView1.selectedItems(i), MyCustomClass).Image

Но использовать это снова и снова кажется пустым / неправильным способом сделать это?

Ответы [ 2 ]

3 голосов
/ 13 января 2010

Это просто, как это работает. ListView может хранить любой вид ListItem, и чтобы добраться до свойств вашего производного приведения, вы должны его привести. Вы делаете это правильно.

2 голосов
/ 13 января 2010

Не очень хорошая идея подкласс ListViewItem просто прикреплять к нему пользовательские атрибуты. Класс предоставляет Tag свойство специально для этой цели, и вы должны заполнить его своим собственным объектом вместо подклассов. Это может не иметь большого значения для синтаксиса, но это лучший дизайн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...