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

Das folgende Beispiel zeigt, wie Sie erstellen eine DataTemplate Inline.The following example shows how to create a DataTemplate inline. Die DataTemplate gibt an, dass jedes Datenelement wird, wie drei angezeigt TextBlock Elemente innerhalb einer StackPanel.The DataTemplate specifies that each data item appears as three TextBlock elements within a StackPanel. In diesem Beispiel wird das Datenobjekt, das eine Klasse namens Task.In this example, the data object is a class called Task. Beachten Sie, dass jedes TextBlock Element in dieser Vorlage an eine Eigenschaft gebunden ist die Task Klasse.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 ist üblich, definieren Sie eine DataTemplate in den Abschnitt "Resources", damit sie ein wieder verwendbares Objekt, wie im folgenden Beispiel werden kann: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 die ItemTemplate Sie die Visualisierung der Datenobjekte an.You use the ItemTemplate to specify the visualization of the data objects. Wenn Ihre ItemsControl gebunden ist für eine Sammlung-Objekt, und Sie bieten keine bestimmten Anweisungen zur Verwendung einer DataTemplate, die resultierende UIUI jedes Elements ist eine Zeichenfolgendarstellung 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.

Beim Festlegen einer ItemTemplate auf ein ItemsControl, wird die UIUI wird folgendermaßen generiert (mithilfe der 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 Content-Generierung die ItemsPanel initiiert eine Anforderung für die ItemContainerGenerator zum Erstellen eines Containers für jedes Datenelement.During content generation, the ItemsPanel initiates a request for the ItemContainerGenerator to create a container for each data item. Für ListBox, der Container ist ein ListBoxItem.For ListBox, the container is a ListBoxItem. Der Generator einen Rückruf in die ItemsControl um den Container vorzubereiten.The generator calls back into the ItemsControl to prepare the container.

  2. Als Vorbereitung umfasst das Kopieren von der ItemTemplate von der ListBox sein der ContentTemplate von der ListBoxItem.Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. Wie alle ContentControl Typen, die ControlTemplate von einer ListBoxItem enthält eine ContentPresenter.Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. Wenn die Vorlage angewendet wird, erstellt es eine ContentPresenter , deren ContentTemplate gebunden ist die ContentTemplate von der ListBoxItem.When the template is applied, it creates a ContentPresenter whose ContentTemplate is bound to the ContentTemplate of the ListBoxItem.

  4. Zum Schluss die ContentPresenter gilt, ContentTemplate auf sich selbst, und erstellt die UIUI.Finally, the ContentPresenter applies that ContentTemplate to itself, and that creates the UIUI.

Wenn Sie über mehrere verfügen DataTemplate definiert, und geben Sie die Logik, um programmgesteuert auswählen und anwenden möchten eine DataTemplate, verwenden Sie die ItemTemplateSelector 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.

Die ItemsControl bietet enorme Flexibilität bei der visuellen Anpassung und bietet zahlreiche Eigenschaften für Stile und Vorlagen.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Verwenden der ItemContainerStyle Eigenschaft oder das ItemContainerStyleSelector Eigenschaft, um ein Format, das die Darstellung der Elemente, die die Datenelemente enthalten festzulegen.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 ListBox, werden die generierten Container ListBoxItem -Steuerelemente für ComboBox, sie sind ComboBoxItem Steuerelemente.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Um das Layout der Elemente beeinflussen möchten, verwenden die ItemsPanel Eigenschaft.To affect the layout of the items, use the ItemsPanel property. Wenn Sie Gruppierung für das Steuerelement verwenden, können Sie mithilfe der GroupStyle oder GroupStyleSelector Eigenschaft.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: StaticResource-Markuperweiterung, oder DynamicResource-Markuperweiterung.One of the following: StaticResource Markup Extension, or DynamicResource Markup Extension. Wenn die Stile an sich selbst verweisen auf potenzielle Laufzeitverweise, z. B. Systemressourcen oder benutzereinstellungen, enthalten StaticResource-Markuperweiterung Verweis auf einen Stil wird in der Regel für 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 Directive Zeichenfolgenwert verweisen auf die Vorlage als eine Ressource angefordert wird.x:Key Directive string value referring to the template being requested as a resource.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

Feld "ID"Identifier field ItemTemplateProperty
Legen Sie auf der Metadaten-Eigenschaften trueMetadata properties set to true NoneNone

Gilt für:

Siehe auch