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 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 un DataTemplate inline. spécifie DataTemplate que chaque élément de données apparaît sous la forme de trois TextBlock éléments dans 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 un DataTemplate dans la section ressources afin qu’il puisse s’agir d’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 pour ItemTemplate spécifier la visualisation des objets de données. 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, l’interface utilisateur résultante de chaque élément est une représentation sous-jacente de chaque objet de 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 comme ListBox exemple) :

  1. Lors de la génération de contenu, le 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 appelle de nouveau dans pour ItemsControl préparer le conteneur.

  2. Une partie de la préparation implique la copie du ItemTemplate de à ListBox être le ContentTemplate du ListBoxItem.

  3. Comme pour tous les ContentControl types, le ControlTemplate d’un ListBoxItem contient un ContentPresenter. Lorsque le modèle est appliqué, il crée un ContentPresenter dont ContentTemplate est lié au ContentTemplate de .ListBoxItem

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

Si vous en avez plusieurs DataTemplate définis et que vous souhaitez fournir une logique pour choisir et appliquer un DataTemplate, utilisez la ItemTemplateSelector propriété .

Offre ItemsControl 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 afin d’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, ce 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 GroupStyle propriété ou GroupStyleSelector .

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. Sauf si les styles eux-mêmes contiennent des références à des références potentielles au moment de l’exécution, telles que des ressources système ou des préférences utilisateur, la référence de l’extension StaticResource Markup à un style est généralement recommandée pour les performances.

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

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

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

S’applique à

Voir aussi