ItemsControl.ItemTemplate Propriété

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.

Attributs

Exemples

L’exemple suivant montre comment créer une DataTemplate Inline.The following example shows how to create a DataTemplate inline. L' DataTemplate spécifie que chaque élément de données apparaît sous la forme de trois éléments TextBlock 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 élément TextBlock dans ce modèle est lié à une propriété de la classe Task.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 de définir un DataTemplate dans la section des ressources afin qu’il puisse s’agir d’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 la 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é à un objet de collection et que vous ne fournissez pas d’instructions d’affichage spécifiques à l’aide d’un DataTemplate, le Interface utilisateurUI résultant 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é comme suit (à l’aide de la ListBox comme 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 de 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. Une partie de la préparation implique la copie de la ItemTemplate du ListBox en tant que ContentTemplate du ListBoxItem.Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. Comme pour tous les types de ContentControl, le ControlTemplate d’un ListBoxItem contient un ContentPresenter.Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. Quand le modèle est appliqué, il crée un ContentPresenter dont le ContentTemplate est lié au ContentTemplate du 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 qui 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 plus d’un DataTemplate défini et que vous souhaitez fournir une logique pour choisir par programmation et appliquer un DataTemplate, utilisez la propriété ItemTemplateSelector.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 flexibilité pour la personnalisation visuelle et fournit de nombreuses propriétés de style et de création de modèles.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Utilisez la propriété ItemContainerStyle ou la propriété ItemContainerStyleSelector pour définir un style qui affecte 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 des contrôles ListBoxItem ; pour ComboBox, il s’agit de contrôles ComboBoxItem.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Pour affecter la disposition des éléments, utilisez la propriété ItemsPanel.To affect the layout of the items, use the ItemsPanel property. Si vous utilisez le regroupement sur votre contrôle, vous pouvez utiliser la propriété GroupStyle ou GroupStyleSelector.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
L’une des valeurs suivantes : l' extension de balisage StaticResourceou l' extension de balisage DynamicResource.One of the following: StaticResource Markup Extension, or DynamicResource Markup Extension. À moins que les styles eux-mêmes ne contiennent des références à des références d’exécution potentielles telles que des ressources système ou des préférences utilisateur, la référence de l' extension de balisage StaticResource à un style est généralement recommandée pour les 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
valeur de chaîne de la directive x :Key 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
Propriétés de métadonnées définies sur trueMetadata properties set to true AucuneNone

S’applique à

Voir aussi