Applications Windows
Réduire la table des matières
Développer la table des matières
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

ItemsControl.ItemTemplate, propriété

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

Espace de noms :  System.Windows.Controls
Assembly :  PresentationFramework (dans PresentationFramework.dll)
XMLNS pour XAML : http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[BindableAttribute(true)]
public DataTemplate ItemTemplate { get; set; }
<object>
  <object.ItemTemplate>
    <DataTemplate .../>
  </object.ItemTemplate>
</object>
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

Valeurs XAML

ResourceExtension

L'un des éléments suivants : StaticResource, extension de balisage ou DynamicResource, extension de balisage. À moins que les styles contiennent eux-mêmes des références à des références potentielles de durée d'exécution, telles que les ressources système ou les préférences de l'utilisateur, la référence StaticResource, extension de balisage à un style est généralement recommandée pour des raisons de performances.

TemplateResourceKey

Valeur de la chaîne x:Key, directive qui fait référence au modèle qui est demandé comme ressource.

Valeur de propriété

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

Champ d'identificateur

ItemTemplateProperty

Propriétés de métadonnées définies à true

Aucun

Utilisez le ItemTemplate pour 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'UI résultant de chaque élément est une représentation sous forme de chaîne de chaque objet dans la collection sous-jacente.

Lorsque vous définissez un ItemTemplate pour un ItemsControl, l'UI est généré comme suit (à l'aide de la ListBox par exemple) :

  1. Pendant la génération de contenu, le ItemsPanel initialise une demande pour que ItemContainerGenerator crée un conteneur pour chaque élément de données. Pour ListBox, le conteneur est un ListBoxItem. Le générateur revient à ItemsControl pour préparer le conteneur.

  2. Une partie de la préparation consiste à copier le ItemTemplate de la ListBox pour créer le ContentTemplate du ListBoxItem.

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

  4. Pour finir, le ContentPresenter applique ce ContentTemplate à lui-même, et cela crée l'UI.

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

ItemsControl offre une grande souplesse pour la personnalisation visuelle et fournit de nombreuses propriétés de style et de création de modèles. Utilisez la propriété ItemContainerStyle ou la propriété ItemContainerStyleSelector pour définir un style pour l'apparence des éléments contenant les éléments de données. Par exemple, pour ListBox, les conteneurs générés sont des contrôles ListBoxItem ; pour ComboBox, il s'agit de contrôles ComboBoxItem. Pour affecter la disposition des éléments, utilisez la propriété ItemsPanel. Si vous utilisez le regroupement pour votre contrôle, vous pouvez utiliser la propriété GroupStyle ou la propriété GroupStyleSelector.

Pour plus d'informations, consultez Vue d'ensemble des modèles de données.

L'exemple de code suivant illustre comment créer un objet DataTemplate inline. DataTemplate spécifie que chaque élément de données apparaît sous forme de trois éléments TextBlock dans un objet StackPanel. Dans cet exemple, l'objet de donnée correspond à une classe appelée Task. Notez que chaque élément TextBlock de ce modèle est lié à une propriété de la classe Task.


<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 DataTemplate dans la section des ressources afin d'en faire 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 en tant que ressource, comme dans l'exemple suivant :


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


Pour obtenir l'exemple complet, consultez la rubrique Introduction aux modèles de données, exemple.

.NET Framework

Pris en charge dans : 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

Afficher:
© 2016 Microsoft