ItemsControl.ItemTemplate ItemsControl.ItemTemplate ItemsControl.ItemTemplate ItemsControl.ItemTemplate Property

Definition

Ruft das DataTemplate ab, mit dem die einzelnen Elemente angezeigt werden, oder legt dieses fest.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

Eigenschaftswert

Ein DataTemplate, das die Visualisierung der Datenobjekte angibt.A DataTemplate that specifies the visualization of the data objects. Die Standardeinstellung ist null.The default is null.

Beispiele

Im folgenden Beispiel wird gezeigt, wie ein DataTemplate Inline erstellt wird.The following example shows how to create a DataTemplate inline. Der DataTemplate gibt an, dass jedes Datenelement als TextBlock drei Elemente innerhalb StackPaneleiner angezeigt wird.The DataTemplate specifies that each data item appears as three TextBlock elements within a StackPanel. In diesem Beispiel ist das Datenobjekt eine Klasse mit dem TaskNamen.In this example, the data object is a class called Task. Beachten Sie, TextBlock dass jedes Element in dieser Vorlage an eine Eigenschaft Task der-Klasse gebunden ist.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>

Es kommt häufiger vor, dass eine DataTemplate im Ressourcenabschnitt definiert, sodass es sich um ein wiederverwendbares Objekt handeln kann, wie im folgenden Beispiel gezeigt: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>

Sie können myTaskTemplate nun als Ressource verwenden, wie im folgenden Beispiel veranschaulicht: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}"/>

Das vollständige Beispiel finden Sie unter Einführung in das Datenvorlagenbeispiel.For the complete sample, see Introduction to Data Templating Sample.

Hinweise

Sie verwenden das ItemTemplate , um die Visualisierung der Datenobjekte anzugeben.You use the ItemTemplate to specify the visualization of the data objects. Wenn Ihr ItemsControl an ein Auflistungs Objekt gebunden ist und Sie keine speziellen Anzeige Anweisungen DataTemplatemithilfe von bereitstellen, UIUI ist die resultierende der einzelnen Elemente eine Zeichen folgen Darstellung der einzelnen Objekte in der zugrunde liegenden Auflistung.If your ItemsControl is bound to a collection object and you do not provide specific display instructions using a DataTemplate, the resulting UIUI of each item is a string representation of each object in the underlying collection.

Wenn Sie ItemTemplate für einen ItemsControlfestlegen, wird der UIUI wie folgt generiert (verwendet ListBox als Beispiel):When you set an ItemTemplate on an ItemsControl, the UIUI is generated as follows (using the ListBox as an example):

  1. Während der ItemsPanel Generierung von Inhalten initiiert eine Anforderung für das ItemContainerGenerator , um einen Container für jedes Datenelement zu erstellen.During content generation, the ItemsPanel initiates a request for the ItemContainerGenerator to create a container for each data item. Für ListBoxist der Container ein ListBoxItem.For ListBox, the container is a ListBoxItem. Der Generator ruft zurück ItemsControl an, um den Container vorzubereiten.The generator calls back into the ItemsControl to prepare the container.

  2. Ein Teil der Vorbereitung umfasst das ItemTemplate Kopieren der ListBox von ListBoxItemin ContentTemplate den der.Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. Ähnlich wie bei ContentControl allen Typen ListBoxItem enthält ControlTemplate der eines-Typs ContentPresenterein.Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. Wenn die Vorlage angewendet wird, erstellt Sie eine ContentPresenter , ContentTemplate deren an den ContentTemplate des ListBoxItemgebunden ist.When the template is applied, it creates a ContentPresenter whose ContentTemplate is bound to the ContentTemplate of the ListBoxItem.

  4. Schließlich ContentPresenter UIUIwendet das auf sich selbst an und erstellt das. ContentTemplateFinally, the ContentPresenter applies that ContentTemplate to itself, and that creates the UIUI.

Wenn Sie mehr als eine DataTemplate definiert haben und eine Logik bereitstellen möchten, um Programm gesteuert eine DataTemplateauszuwählen und anzuwenden, verwenden ItemTemplateSelector Sie die-Eigenschaft.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.

Bietet ItemsControl eine hohe Flexibilität bei der visuellen Anpassung und bietet viele Formatierungs-und Vorlagen Eigenschaften.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Verwenden Sie ItemContainerStyle die-Eigenschaft ItemContainerStyleSelector oder die-Eigenschaft, um einen Stil festzulegen, der sich auf die Darstellung der Elemente auswirkt, die die Datenelemente enthalten.Use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. Beispielsweise ListBoxsind ListBoxItem die generierten Container-Steuerelemente ComboBoxfür die-Steuerelemente, ComboBoxItem und sind-Steuerelemente.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Verwenden Sie die ItemsPanel -Eigenschaft, um das Layout der Elemente zu beeinflussen.To affect the layout of the items, use the ItemsPanel property. Wenn Sie die Gruppierung für das-Steuerelement verwenden, können Sie GroupStyle die GroupStyleSelector -Eigenschaft oder die-Eigenschaft verwenden.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property.

Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.For more information, see Data Templating Overview.

Verwendung von XAML-AttributenXAML Attribute Usage

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

XAML-WerteXAML Values

ResourceExtensionResourceExtension
Eine der folgenden: Statikresource-Markup Erweiterungoder dynamikresource-Markup Erweiterung.One of the following: StaticResource Markup Extension, or DynamicResource Markup Extension. Wenn die Stile selbst keine Verweise auf potenzielle Lauf Zeit Verweise enthalten, wie z. b. Systemressourcen oder Benutzereinstellungen, wird in der Regel ein StaticResource-Markup Erweiterungs Verweis auf einen Stil für die Leistung empfohlen.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
x:Key -direktivenzeichenfolgen-Wert, der auf die als Ressource angeforderte Vorlage verweist.x:Key Directive string value referring to the template being requested as a resource.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

BezeichnerfeldIdentifier field ItemTemplateProperty
Metadateneigenschaften auf true festgelegtMetadata properties set to true KeineNone

Gilt für:

Siehe auch