Modello di articolo diverso per ciascun elemento in un elenco WPF?
-
02-07-2019 - |
Domanda
Ho molti elementi all'interno di un controllo elenco. Voglio che ogni articolo abbia un modello di articolo diverso a seconda del tipo di articolo. Quindi il primo elemento nell'elenco è un tipo ObjectA e quindi voglio renderlo con ItemTemplateA. Il secondo elemento è un tipo ObjectB e quindi voglio che abbia ItemTemplateB per il rendering. Al momento posso solo utilizzare l'impostazione ItemTemplate per definire un modello per tutti. Un modo per raggiungere questo obiettivo?
Soluzione
il ItemTemplateSelector
funzionerà ma penso che sia più facile creare più DataTemplate
nella sezione delle risorse e quindi dare a ciascuno un DataType
. Questo utilizzerà automaticamente questo DataTemplate
se il generatore di articoli rileva il tipo di dati corrispondente?
<DataTemplate DataType={x:Type local:ObjectA}>
...
</DataTemplate>
Assicurati anche di non avere x: Key
impostato per DataTemplate
.
Ulteriori informazioni su questo approccio qui
Altri suggerimenti
Dai un'occhiata al ItemTemplateSelector proprietà del controllo elenco. Puoi indicarlo a un TemplateSelector personalizzato e decidere quale modello utilizzare nel codice.
Ecco un post sul blog che descrive TemplateSelectors:
http://blogs.interknowlogy.com/johnbowen/ archive / 2007/06/21 / 20463.aspx
Modifica: ecco un post migliore: