ObjectListView icon indicating copy to clipboard operation
ObjectListView copied to clipboard

FastObjectListView in LargeIcon view with groups

Open rrirower opened this issue 4 years ago • 3 comments
trafficstars

I tried to convert a ListView in LargeIcon view to a FastObjectListView that uses groups. The code throws an exception while trying to define the groups:

"When the ListView is in virtual mode, you cannot enumerate through the ListView items collection using an enumerator or call GetEnumerator. Use the ListView items indexer instead and access an item by index value."

The exception occurs on this line in the code:

channellistView.Groups.Add(new ListViewGroup(category.name, HorizontalAlignment.Left));

I am adding the groups programmatically in the code. I set the flag 'ShowGroups' to true.

Is this possible? How can I add groups to a FastObjectListView in LargeIcon view? Is there a code sample or recipe?

rrirower avatar Nov 19 '21 22:11 rrirower

UPDATE: I found a workaround. I'm not sure it's appropriate, but, it seems to work. I set the ListView property 'VirtualMode' to false. The code does not throw an exception and now fills the groups programmatically.

Is this an appropriate workaround?

rrirower avatar Nov 19 '21 22:11 rrirower

That is certainly appropriate if you know you won't need to use VirtualMode. VirtualMode performs much better but it makes the control harder to use (i.e. you loose certain accessors).

VirtualMode is for when the # of items 'in' the list is too large (either too large to load from source like a database, or too large to be useful to the user and so wasteful to draw them all). If you know your list is always small, or you know all the items will always be available, then you don't need VirtualMode.

thracx avatar Jan 06 '22 13:01 thracx

Thanks for the reply. However, I reverted back to using the WinForms ListView since nothing I tried worked.

rrirower avatar Jan 06 '22 18:01 rrirower