Probleem:
Ik heb de volgende overervingsstructuur.
Product
Product <- AtomicProduct (Atomic erft over van Product)
Product <- ComplexProduct (Complexerft over van Product)
Ik bind een ProductCollection aan een datagrid. Deze collectie kan zowel AtomicProducts als ComplexProducts bevatten (ze zijn immers beiden van het type Product). Als de collectie alleen AtomicProducts of alleen ComplexProducts bevat dan gaat het goed. Bevat de collectie echter beide dan krijg ik de volgende fout
Het lijkt dus zo te zijn dat de datagrid het type van de items bepaalt op basis van het eerste item in de collectie. Hij komt dus eerst bv. een AtomicProduct tegen en zegt dat is het type, als hij vervolgens dan bij ComplexProduct komt dan gaat het mis omdat die niet van het type AtomicProduct is.
Das dus mooi kut, want collecties met een heterogeen subtype (maar een met een zelfde supertype) zijn erg handig.
Weet iemand hier een oplossing voor, want alle oplossingen die ik kan bedenken zijn veel minder schoon dan de huidige code (bv. benodige data eerst in een datatable zetten en die binden ipv de objectcollectie gebruiken). Ik kan bijvoorbeeld niks vinden om het type van de items in de datagrid te forceren.
Ik heb de volgende overervingsstructuur.
Product
Product <- AtomicProduct (Atomic erft over van Product)
Product <- ComplexProduct (Complexerft over van Product)
Ik bind een ProductCollection aan een datagrid. Deze collectie kan zowel AtomicProducts als ComplexProducts bevatten (ze zijn immers beiden van het type Product). Als de collectie alleen AtomicProducts of alleen ComplexProducts bevat dan gaat het goed. Bevat de collectie echter beide dan krijg ik de volgende fout
code:
1
2
3
4
| Object does not match target type. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Reflection.TargetException: Object does not match target type. |
Het lijkt dus zo te zijn dat de datagrid het type van de items bepaalt op basis van het eerste item in de collectie. Hij komt dus eerst bv. een AtomicProduct tegen en zegt dat is het type, als hij vervolgens dan bij ComplexProduct komt dan gaat het mis omdat die niet van het type AtomicProduct is.
Das dus mooi kut, want collecties met een heterogeen subtype (maar een met een zelfde supertype) zijn erg handig.
Weet iemand hier een oplossing voor, want alle oplossingen die ik kan bedenken zijn veel minder schoon dan de huidige code (bv. benodige data eerst in een datatable zetten en die binden ipv de objectcollectie gebruiken). Ik kan bijvoorbeeld niks vinden om het type van de items in de datagrid te forceren.
Panacea.NL als je geinteresserd bent in IT en Geneeskunde!