ItemsControl.ItemTemplate ItemsControl.ItemTemplate ItemsControl.ItemTemplate ItemsControl.ItemTemplate Property

Définition

Obtient ou définit le DataTemplate utilisé pour afficher chaque élément.Gets or sets the DataTemplate used to display each 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; }
member this.ItemTemplate : System.Windows.DataTemplate with get, set
Public Property ItemTemplate As DataTemplate

Valeur de propriété

DataTemplate qui spécifie la visualisation des objets de données.A DataTemplate that specifies the visualization of the data objects. La valeur par défaut est null.The default is null.

Exemples

L’exemple suivant montre comment créer un DataTemplate inline.The following example shows how to create a DataTemplate inline. Le DataTemplate Spécifie que chaque élément de données s’affiche sous forme de trois TextBlock éléments au sein d’un StackPanel.The DataTemplate specifies that each data item appears as three TextBlock elements within a StackPanel. Dans cet exemple, l’objet de données est une classe appelée Task.In this example, the data object is a class called Task. Notez que chaque TextBlock élément dans ce modèle est lié à une propriété de la Task classe.Note that each TextBlock element in this template is bound to a property of the Task class.

<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>

Il est plus courant pour définir un DataTemplate dans la section de ressources afin d’en faire un objet réutilisable, comme dans l’exemple suivant :It is more common to define a DataTemplate in the resources section so it can be a reusable object, as in the following example:

<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>

Vous pouvez à présent utiliser myTaskTemplate comme ressource, comme dans l’exemple suivant :Now you can use myTaskTemplate as a resource, as in the following example:

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

Vous trouverez l’exemple complet sur la page Présentation d’un exemple de création de modèles de données.For the complete sample, see Introduction to Data Templating Sample.

Remarques

Vous utilisez le ItemTemplate pour spécifier la visualisation des objets de données.You use the ItemTemplate to specify the visualization of the data objects. Si votre ItemsControl est lié à une collection objet et vous ne fournissez pas les instructions d’affichage spécifiques à l’aide un DataTemplate, résultant Interface utilisateurUI de chaque élément est une représentation sous forme de chaîne de chaque objet dans la collection sous-jacente.If your ItemsControl is bound to a collection object and you do not provide specific display instructions using a DataTemplate, the resulting Interface utilisateurUI of each item is a string representation of each object in the underlying collection.

Lorsque vous définissez un ItemTemplate sur un ItemsControl, le Interface utilisateurUI est générée comme suit (à l’aide de la ListBox par exemple) :When you set an ItemTemplate on an ItemsControl, the Interface utilisateurUI is generated as follows (using the ListBox as an example):

  1. Pendant la génération du contenu, le ItemsPanel lance une demande pour le ItemContainerGenerator pour créer un conteneur pour chaque élément de données.During content generation, the ItemsPanel initiates a request for the ItemContainerGenerator to create a container for each data item. Pour ListBox, le conteneur est un ListBoxItem.For ListBox, the container is a ListBoxItem. Le générateur rappelle le ItemsControl pour préparer le conteneur.The generator calls back into the ItemsControl to prepare the container.

  2. Partie de la préparation consiste à copier le ItemTemplate de la ListBox pour être le ContentTemplate de la ListBoxItem.Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. Similaire à tous les ContentControl types, le ControlTemplate d’un ListBoxItem contient un ContentPresenter.Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. Lorsque le modèle est appliqué, il crée un ContentPresenter dont ContentTemplate est lié à la ContentTemplate de la ListBoxItem.When the template is applied, it creates a ContentPresenter whose ContentTemplate is bound to the ContentTemplate of the ListBoxItem.

  4. Enfin, le ContentPresenter s’applique que ContentTemplate à lui-même, et qui crée le Interface utilisateurUI.Finally, the ContentPresenter applies that ContentTemplate to itself, and that creates the Interface utilisateurUI.

Si vous avez plusieurs DataTemplate défini et que vous souhaitez fournir une logique permettant de choisir et appliquer par programme un DataTemplate, utilisez le ItemTemplateSelector propriété.If you have more than one DataTemplate defined and you want to supply logic to programmatically choose and apply a DataTemplate, use the ItemTemplateSelector property.

Le ItemsControl offre une grande souplesse pour la personnalisation visuelle et fournit de nombreuses propriétés de style et création de modèles.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Utilisez le ItemContainerStyle propriété ou le ItemContainerStyleSelector propriété à définir un style pour l’apparence des éléments qui contiennent les éléments de données.Use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. Par exemple, pour ListBox, les conteneurs générés sont ListBoxItem contrôle ; pour ComboBox, ils sont ComboBoxItem contrôles.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Pour affecter la disposition des éléments, utilisez le ItemsPanel propriété.To affect the layout of the items, use the ItemsPanel property. Si vous utilisez le regroupement sur votre contrôle, vous pouvez utiliser la GroupStyle ou GroupStyleSelector propriété.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property.

Pour plus d’informations, consultez Vue d’ensemble des modèles de données.For more information, see Data Templating Overview.

Utilisation d'attributs XAMLXAML Attribute Usage

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

Valeurs XAMLXAML Values

ResourceExtensionResourceExtension
Une des valeurs suivantes : Extension de balisage StaticResource, ou Extension de balisage DynamicResource.One of the following: StaticResource Markup Extension, or DynamicResource Markup Extension. À moins que les styles contiennent eux-mêmes des références à des références d’exécution potentiels tels que les ressources système ou les préférences de l’utilisateur, Extension de balisage StaticResource référence à un style est généralement recommandée pour des performances.Unless the styles themselves contain references to potential run-time references such as system resources or user preferences, StaticResource Markup Extension reference to a style is usually recommended for performance.

TemplateResourceKeyTemplateResourceKey
x : Key Directive valeur de chaîne qui fait référence au modèle demandé en tant que ressource.x:Key Directive string value referring to the template being requested as a resource.

Informations sur les propriétés de dépendanceDependency Property Information

Champ d’identificateurIdentifier field ItemTemplateProperty
La valeur des propriétés de métadonnées trueMetadata properties set to true Aucun.None

S’applique à

Voir aussi