I have a ListView in Virtual Mode. I wanna to access SelectedItems
property.
But when I use ListView1.SelectedItems
, I receive the following Exception :
Cannot access the selected items collection when the ListView is in virtual mode
How can I access to ListView1.SelectedItems
in VirtualMode.
I you store all items in list and use this list to give item in RetrieveVirtualItem you can find selected items like following
From the docs
In virtual mode, the Items collection is disabled. Attempting to access it results in an InvalidOperationException. The same is true of the CheckedItems collection and the SelectedItems collection. If you want to retrieve the selected or checked items, use the SelectedIndices and CheckedIndices collections instead.
It is quite old post but maybe someone else will benefit.
Simply use
ListView.SelectedIndexCollection col = listView.SelectedIndices;
Then you can access an item:..but you won't be able to iterate through ListView.Items using foreach because there is no iterator available in this mode. Using indexer is just flying fine :-)
When trying to use foreach you get an exception:
I've done it by the following code, but it has an exception when more than one item are selected:
Whenever you remove item(s) from a collection, always iterate from the largest index to the smallest index, like this:
This is because every time you remove an item in a collection, the index will change if you do not iterate from the largest to the smallest index.