Pergunta

Eu tenho muitos artigos dentro de um controle de lista. Eu quero que cada item para ter um modelo de item diferente, dependendo do tipo de item. Assim, o primeiro item da lista é um tipo ObjectA e assim que eu quero que ele seja processado com ItemTemplateA. Segundo item é um tipo ObjectB e assim que eu quero que ele tenha ItemTemplateB para renderização. No momento eu só pode usar a configuração ItemTemplate para definir um modelo para todos eles. Qualquer maneira de conseguir isso?

Foi útil?

Solução

o ItemTemplateSelector vai funcionar, mas eu acho que é mais fácil de criar várias DataTemplates na sua seção de recursos e, em seguida, apenas dando a cada um uma DataType. Este será automaticamente, em seguida, usar esse DataTemplate se os itens gerador detecta o tipo de dados correspondente?

<DataTemplate DataType={x:Type local:ObjectA}>
   ...
</DataTemplate>

Também certifique-se que você não tem conjunto x:Key para o DataTemplate.
Leia mais sobre esta abordagem aqui

Outras dicas

Tenha um olhar para o ItemTemplateSelector propriedade da lista de seu controle. Você pode apontar para um TemplateSelector personalizado e decidir qual o modelo a ser usado no código.

Aqui está um post descrevendo TemplateSelectors:

http://blogs.interknowlogy.com/johnbowen/ Arquivo / 2007/06/21 / 20463.aspx

Edit: Aqui está um post melhor:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top