Ik heb een ListView welke opereerd in VirtualMode. In de eventhandler RetrieveVirtualItem maak ik een stel ListViewItems aan, en deze hebben in de Tag het ID van hun corresponderende gegevens in de database.
Op het moment dat ik zo'n ListViewItem selecteer wil ik dat er een (zelfgeschreven) klasse wordt aangemaakt met de gegevens van dat ID in de Tag. Vervolgens moet de Tag veranderen in die aangemaakte klasse.
Maar ik heb het idee dat er in VirtualMode helemaal niks veranderd mag worden aan de ListViewItems.
Ik heb op dit moment deze code in SelectedIndexChanged (maar deze code plaatsen in VirtualItemsSelectionRangeChanged heeft geen effect) om de geselecteerde ListViewItems op te halen en de Tag te veranderen:
Hij haalt alles goed op, er wordt een nieuwe instantie gemaakt van de klasse Issue. Hij geeft ook geen error op regel 9, maar uiteindelijk blijft de tag gewoon van het type Int32 in plaats van het type Issue. Dus er is niks geupdate.
Regel 10 is nu commentaar, maar wat ik daar doe mag blijkbaar helemaal niet in VirtualMode.
Heeft iemand een oplossing voor mijn probleem. MSDN en Google bieden vooralsnog geen oplossing. Maar ik denk dat het probleem is dat ik in VirtualMode gewoon helemaal geen ListViewItems mag wijzigen.
Op het moment dat ik zo'n ListViewItem selecteer wil ik dat er een (zelfgeschreven) klasse wordt aangemaakt met de gegevens van dat ID in de Tag. Vervolgens moet de Tag veranderen in die aangemaakte klasse.
Maar ik heb het idee dat er in VirtualMode helemaal niks veranderd mag worden aan de ListViewItems.
Ik heb op dit moment deze code in SelectedIndexChanged (maar deze code plaatsen in VirtualItemsSelectionRangeChanged heeft geen effect) om de geselecteerde ListViewItems op te halen en de Tag te veranderen:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
| foreach (int itemIndex in ListViewIssues.SelectedIndices) { ListViewItem lvi = ListViewIssues.Items[itemIndex]; if (lvi.Tag is Issue) { } else { int instanceID = (int)lvi.Tag; lvi.Tag = new Issue(instanceID); //ListViewIssues.Items[itemIndex] = lvi; } } |
Hij haalt alles goed op, er wordt een nieuwe instantie gemaakt van de klasse Issue. Hij geeft ook geen error op regel 9, maar uiteindelijk blijft de tag gewoon van het type Int32 in plaats van het type Issue. Dus er is niks geupdate.
Regel 10 is nu commentaar, maar wat ik daar doe mag blijkbaar helemaal niet in VirtualMode.
Heeft iemand een oplossing voor mijn probleem. MSDN en Google bieden vooralsnog geen oplossing. Maar ik denk dat het probleem is dat ik in VirtualMode gewoon helemaal geen ListViewItems mag wijzigen.