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?

È stato utile?

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:

http : //blog.paranoidferret.com/index.php/2008/07/16/wpf-tutorial-how-to-use-a-datatemplateselector/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top