Modèle d'élément différent pour chaque élément d'une liste WPF?
-
02-07-2019 - |
Question
J'ai plusieurs éléments dans un contrôle de liste. Je veux que chaque élément ait un modèle d'élément différent selon le type d'élément. Le premier élément de la liste est donc un type ObjectA et je souhaite donc qu'il soit rendu avec ItemTemplateA. Le second élément est un type ObjectB et je veux donc qu’il ait ItemTemplateB pour le rendu. Pour le moment, je ne peux utiliser le paramètre ItemTemplate que pour définir un modèle pour tous. Un moyen d'y arriver?
La solution
le ItemTemplateSelector
fonctionnera, mais je pense qu'il est plus facile de créer plusieurs DataTemplate
dans votre section de ressources et de simplement donner à chacun un DataType
. Ceci utilisera alors automatiquement ce DataTemplate
si le générateur d’éléments détecte le type de données correspondant?
<DataTemplate DataType={x:Type local:ObjectA}>
...
</DataTemplate>
Assurez-vous également que x: clé
n'est pas défini pour DataTemplate
.
En savoir plus sur cette approche ici
Autres conseils