ItemsControl.ItemTemplate Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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):
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.
Parte da preparação envolve a cópia do ItemTemplateListBox do para ser o ContentTemplate do ListBoxItem.
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
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 |