¿Diferente plantilla de elementos para cada elemento en una lista de WPF?
-
02-07-2019 - |
Pregunta
Tengo muchos elementos dentro de un control de lista. Quiero que cada elemento tenga una plantilla de elemento diferente según el tipo de elemento. Por lo tanto, el primer elemento de la lista es un tipo ObjectA y, por lo tanto, quiero que se represente con ItemTemplateA. El segundo elemento es un tipo ObjectB y, por lo tanto, quiero que tenga ItemTemplateB para renderizar. En este momento solo puedo usar la configuración ItemTemplate para definir una plantilla para todos ellos. ¿Alguna forma de lograr esto?
Solución
el ItemTemplateSelector
funcionará pero creo que es más fácil crear múltiples DataTemplate
en su sección de recursos y luego solo le doy a cada uno un DataType
. Esto utilizará automáticamente este DataTemplate
si el generador de elementos detecta el tipo de datos coincidente.
<DataTemplate DataType={x:Type local:ObjectA}>
...
</DataTemplate>
También asegúrate de no tener x: Key
configurado para DataTemplate
.
Lea más sobre este enfoque aquí