ItemsControl.ItemTemplate Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o DataTemplate 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 da propriedade
Um DataTemplate que especifica a visualização dos objetos de dados. O padrão é null
.
- Atributos
Exemplos
O exemplo a seguir mostra como criar um DataTemplate embutido. O DataTemplate especifica que cada item de dados aparece como três TextBlock elementos dentro de um StackPanel. Neste exemplo, o objeto de dados é uma classe chamada Task
. Observe que cada TextBlock elemento neste modelo está associado 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 um DataTemplate na seção de recursos para que ele possa ser um objeto reutilizável, como no exemplo a seguir:
<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, é possível usar o myTaskTemplate
como recurso, como no exemplo a seguir:
<ListBox Width="400" Margin="10"
ItemsSource="{Binding Source={StaticResource myTodoList}}"
ItemTemplate="{StaticResource myTaskTemplate}"/>
Para ver a amostra completa, consulte Amostra da introdução à modelagem de dados.
Comentários
Use o ItemTemplate para especificar a visualização dos objetos de dados. Se o ItemsControl estiver associado a um objeto de coleção e você não fornecer instruções de exibição específicas usando um DataTemplate, a interface do usuário resultante de cada item será uma representação de cadeia de caracteres de cada objeto na coleção subjacente.
Quando você define um ItemTemplate em um ItemsControl, a interface do usuário é gerada da seguinte maneira (usando o ListBox como exemplo):
Durante a geração de conteúdo, o ItemsPanel inicia uma solicitação para que o ItemContainerGenerator crie um contêiner para cada item de dados. Para ListBox, o contêiner é um ListBoxItem. O gerador chama de volta para o ItemsControl para preparar o contêiner.
Parte da preparação envolve a cópia do ItemTemplate do ListBox para ser o ContentTemplateListBoxItemdo .
Semelhante a todos os ContentControl tipos, o ControlTemplate de um ListBoxItem contém um ContentPresenter. Quando o modelo é aplicado, ele cria um ContentPresenter cujo ContentTemplate está associado ao ContentTemplate do ListBoxItem.
Por fim, o ContentPresenter aplica isso ContentTemplate a si mesmo e que cria a interface do usuário.
Se você tiver mais de um DataTemplate definido e quiser fornecer lógica para escolher e aplicar programaticamente um DataTemplate, use a ItemTemplateSelector propriedade .
O ItemsControl fornece grande flexibilidade para personalização visual e fornece muitas propriedades de modelagem e estilo. Use a ItemContainerStyle propriedade ou a ItemContainerStyleSelector propriedade para definir um estilo para afetar a aparência dos elementos que contêm os itens de dados. Por exemplo, para ListBox, os contêineres gerados são ListBoxItem controles; para ComboBox, eles são ComboBoxItem controles. Para afetar o layout dos itens, use a ItemsPanel propriedade . Se você estiver usando o agrupamento em seu controle, poderá usar a GroupStyle propriedade ou GroupStyleSelector .
Para obter mais informações, consulte Visão geral da modelagem de dados.
Uso do Atributo XAML
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>
Valores XAML
ResourceExtension Uma das seguintes opções: Extensão de Marcação StaticResource ou Extensão de Marcação DynamicResource. A menos que os próprios estilos contenham referências a possíveis referências em tempo de execução, como recursos do sistema ou preferências do usuário, a referência da Extensão de Marcação StaticResource a um estilo geralmente é recomendada para desempenho.
Valor da cadeia de caracteres TemplateResourceKeyx:Key Directive referente ao modelo que está sendo solicitado como um recurso.
Informações da propriedade de dependência
Campo Identificador | ItemTemplateProperty |
Propriedades de metadados definidas como true |
Nenhum |