ItemsControl.ItemTemplate Propriété

Définition

Obtient ou définit le DataTemplate utilisé pour afficher chaque élément.

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

Valeur de propriété

DataTemplate

DataTemplate qui spécifie la visualisation des objets de données. La valeur par défaut est null.

Attributs

Exemples

L’exemple suivant montre comment créer une DataTemplate inline. Spécifie DataTemplate que chaque élément de données apparaît sous la forme de trois TextBlock éléments au sein d’un StackPanel. Dans cet exemple, l’objet de données est une classe appelée Task. Notez que chaque TextBlock élément de ce modèle est lié à une propriété de la 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>

Il est plus courant de définir une DataTemplate section ressources afin qu’elle puisse être un objet réutilisable, comme dans l’exemple suivant :

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

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

Remarques

Vous utilisez la ItemTemplate méthode pour spécifier la visualisation des objets de données. Si votre ItemsControl objet est lié à une collection et que vous ne fournissez pas d’instructions d’affichage spécifiques à l’aide d’un DataTemplate, l’interface utilisateur résultante de chaque élément est une représentation sous-jacente de chaque objet dans la collection sous-jacente.

Lorsque vous définissez un ItemTemplate sur un ItemsControl, l’interface utilisateur est générée comme suit (à l’aide de l’exemple ListBox ) :

  1. Au cours de la génération de contenu, l’utilisateur ItemsPanel lance une demande de ItemContainerGenerator création d’un conteneur pour chaque élément de données. Pour ListBox, le conteneur est un ListBoxItem. Le générateur revient dans le ItemsControl conteneur pour préparer le conteneur.

  2. Une partie de la préparation implique la copie de l’élément ListBox ItemTemplate qui doit être le ContentTemplate ListBoxItem.

  3. Semblable à tous les ContentControl types, l’un ControlTemplate ListBoxItem contient un ContentPresenter. Lorsque le modèle est appliqué, il crée un ContentPresenter dont ContentTemplate il est lié à l’objet ContentTemplate ListBoxItem.

  4. Enfin, l’application ContentPresenter s’applique ContentTemplate à elle-même et crée l’interface utilisateur.

Si vous avez plusieurs DataTemplate valeurs définies et que vous souhaitez fournir une logique pour choisir et appliquer une DataTemplatelogique par programmation, utilisez la ItemTemplateSelector propriété.

Le modè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. Utilisez la ItemContainerStyle propriété ou la ItemContainerStyleSelector propriété pour définir un style pour affecter l’apparence des éléments qui contiennent les éléments de données. Par exemple, pour ListBox, les conteneurs générés sont ListBoxItem des contrôles ; pour ComboBox, ils sont ComboBoxItem des contrôles. Pour affecter la disposition des éléments, utilisez la ItemsPanel propriété. Si vous utilisez le regroupement sur votre contrôle, vous pouvez utiliser la ou GroupStyleSelector la GroupStyle propriété.

Pour plus d’informations, consultez Vue d’ensemble de la création de modèles de données.

Utilisation d'attributs XAML

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

Valeurs XAML

ResourceExtension
L’une des options suivantes : Extension de balisage StaticResource ou Extension de balisage DynamicResource. À moins que les styles eux-mêmes contiennent des références à des références au moment de l’exécution potentielles telles que des ressources système ou des préférences utilisateur, la référence staticResource Markup Extension à un style est généralement recommandée pour les performances.

TemplateResourceKey
Valeur de chaîne de directive x:Key faisant référence au modèle demandé en tant que ressource.

Informations sur les propriétés de dépendance

Champ d’identificateur ItemTemplateProperty
Propriétés de métadonnées définies sur true Aucun

S’applique à

Voir aussi