Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Télécharger Microsoft Edge
Plus d’informations sur Internet Explorer et Microsoft Edge
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é
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
) :
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.
Une partie de la préparation implique la copie de l’élément
ListBox
ItemTemplate
qui doit être le
ContentTemplate
ListBoxItem
.
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
.
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
DataTemplate
logique 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.