ItemsControl.ItemTemplate Propriedade

Definição

Obtém ou define o DataTemplate que é usado para exibir cada item.

public:
 property System::Windows::DataTemplate ^ ItemTemplate { System::Windows::DataTemplate ^ get(); void set(System::Windows::DataTemplate ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.DataTemplate ItemTemplate { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.ItemTemplate : System.Windows.DataTemplate with get, set
Public Property ItemTemplate As DataTemplate

Valor de Propriedade

A DataTemplate que especifica a visualização dos objetos de dados. A predefinição é null.

Atributos

Exemplos

O exemplo seguinte mostra como criar um DataTemplate inline. Especifica DataTemplate que cada elemento de dados aparece como três TextBlock elementos dentro de um StackPanel. Neste exemplo, o objeto de dados é uma classe chamada Task. Note que cada TextBlock elemento neste modelo está ligado a uma propriedade da Task classe.

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel>
         <TextBlock Text="{Binding Path=TaskName}" />
         <TextBlock Text="{Binding Path=Description}"/>
         <TextBlock Text="{Binding Path=Priority}"/>
       </StackPanel>
     </DataTemplate>
   </ListBox.ItemTemplate>
 </ListBox>

É mais comum definir a DataTemplate na secção de recursos para que possa ser um objeto reutilizável, como no seguinte exemplo:

<Window.Resources>
<DataTemplate x:Key="myTaskTemplate">
  <StackPanel>
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>
  </StackPanel>
</DataTemplate>
</Window.Resources>

Agora você pode usar myTaskTemplate como um recurso, como no exemplo a seguir:

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

Para obter o exemplo completo, consulte Introdução ao exemplo de modelagem de dados.

Observações

Usas o ItemTemplate para especificar a visualização dos objetos de dados. Se Your ItemsControl estiver ligado a um objeto de coleção e não fornecer instruções de visualização específicas usando um DataTemplate, a interface resultante de cada item é uma representação em cadeia de cada objeto na coleção subjacente.

Quando defines um ItemTemplate em um ItemsControl, a interface é gerada da seguinte forma (usando o ListBox como exemplo):

  1. Durante a geração de conteúdo, inicia ItemsPanel um pedido para que ItemContainerGenerator crie um contentor para cada elemento de dados. Para ListBox, o recipiente é um ListBoxItem. O gerador chama de volta para ItemsControl preparar o recipiente.

  2. Parte da preparação envolve a cópia do ItemTemplateListBox do para ser o ContentTemplate do ListBoxItem.

  3. Semelhante a todos os ContentControl tipos, o ControlTemplate de a ListBoxItem contém um ContentPresenter. Quando o modelo é aplicado, cria-se um ContentPresenter cujo ContentTemplate está ligado ao ContentTemplate de .ListBoxItem

  4. Finalmente, aplica-se ContentPresenter isso ContentTemplate a si próprio, e assim cria a interface.

Se tiver mais do que um DataTemplate definido e quiser fornecer lógica para escolher e aplicar programaticamente um DataTemplate, use a ItemTemplateSelector propriedade.

Oferece ItemsControl grande flexibilidade para personalização visual e oferece muitas propriedades de estilo e modelagem. Use a ItemContainerStyle propriedade ou a ItemContainerStyleSelector propriedade para definir um estilo que afete a aparência dos elementos que contêm os itens de dados. Por exemplo, para ListBox, os contentores gerados são ListBoxItem controlos; para ComboBox, são ComboBoxItem controlos. Para influenciar a disposição dos itens, use a ItemsPanel propriedade. Se estiveres a usar agrupamento no teu controlo, podes usar a GroupStyle propriedade ou.GroupStyleSelector

Para mais informações, consulte Visão Geral da Templação de Dados.

Uso de atributos XAML

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

Valores XAML

ResourceExtension Uma das seguintes: Extensão de Marcação StaticResource, ou Extensão de Marcação DynamicResource. A menos que os próprios estilos contenham referências a potenciais referências em tempo de execução, como recursos do sistema ou preferências do utilizador, a referência StaticResource Markup Extension a um estilo é geralmente recomendada para desempenho.

TemplateResourceKeyx:Valor da cadeia de Diretiva Chave referindo-se ao modelo solicitado como recurso.

Informação de Propriedade de Dependência

Iteme Value
Campo identificador ItemTemplateProperty
Propriedades dos metadados definidas como true None

Aplica-se a

Ver também