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?

¿Fue útil?

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í

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top