ItemsControl.ItemTemplate Eigenschaft

Definition

Ruft die zur Anzeige der einzelnen Elemente verwendete DataTemplate ab oder legt sie fest.

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

Eigenschaftswert

DataTemplate

Eine DataTemplate, die die Visualisierung der Datenobjekte angibt. Der Standardwert ist null.

Attribute

Beispiele

Das folgende Beispiel zeigt, wie Sie eine DataTemplate Inline erstellen. Dies DataTemplate gibt an, dass jedes Datenelement in einem Element StackPanelals drei TextBlock Elemente angezeigt wird. In diesem Beispiel ist das Datenobjekt eine Klasse namens Task. Beachten Sie, dass jedes TextBlock Element in dieser Vorlage an eine Eigenschaft der Task Klasse gebunden ist.

<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 häufiger, einen DataTemplate in den Ressourcenabschnitt zu definieren, damit es sich um ein wiederverwendbares Objekt handeln kann, wie im folgenden Beispiel:

<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:

<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.

Hinweise

Sie verwenden die ItemTemplate Visualisierung der Datenobjekte. Wenn Ihre ItemsControl Bindung an ein Auflistungsobjekt gebunden ist und Sie keine spezifischen Anzeigeanweisungen mithilfe DataTemplateeiner , die resultierende Benutzeroberfläche jedes Elements ist eine Zeichenfolgendarstellung jedes Objekts in der zugrunde liegenden Auflistung.

Beim Festlegen einer ItemTemplate ItemsControlBenutzeroberfläche wird die Benutzeroberfläche wie folgt generiert (mithilfe des ListBox Beispiels):

  1. Während der Inhaltsgenerierung initiiert die ItemsPanel Anforderung ItemContainerGenerator zum Erstellen eines Containers für jedes Datenelement. Für ListBox, der Container ist ein ListBoxItem. Der Generator ruft in den ItemsControl Container zurück, um den Container vorzubereiten.

  2. Teil der Vorbereitung umfasst das Kopieren des ItemTemplate ListBox zu seinden ContentTemplate ListBoxItemder .

  3. Ähnlich wie bei allen ContentControl Typen enthält dies ListBoxItem ControlTemplate eine ContentPresenter. Wenn die Vorlage angewendet wird, erstellt sie eine ContentPresenter , deren ContentTemplate bindungsgebunden ContentTemplate ListBoxItemist.

  4. Schließlich wendet ContentTemplate dies ContentPresenter auf sich selbst an und erstellt die Benutzeroberfläche.

Wenn Sie mehrere DataTemplate definiert haben und Logik angeben möchten, um programmgesteuert eine DataTemplateOption auszuwählen und anzuwenden, verwenden Sie die ItemTemplateSelector Eigenschaft.

Dies ItemsControl bietet eine große Flexibilität für visuelle Anpassungen und bietet viele Formatierungs- und Vorlageneigenschaften. Verwenden Sie die ItemContainerStyle Eigenschaft oder die ItemContainerStyleSelector Eigenschaft, um eine Formatvorlage festzulegen, um die Darstellung der Elemente, die die Datenelemente enthalten, zu beeinflussen. ListBoxBeispielsweise sind die generierten Container Steuerelemente, für ComboBoxdie sie Steuerelemente sind ListBoxItem ComboBoxItem. Verwenden Sie die ItemsPanel Eigenschaft, um das Layout der Elemente zu beeinflussen. Wenn Sie die Gruppierung für Ihr Steuerelement verwenden, können Sie die GroupStyle Eigenschaft verwenden GroupStyleSelector .

Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.

Verwendung von XAML-Attributen

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

XAML-Werte

ResourceExtension
Eine der folgenden: StaticResource-Markuperweiterung oder DynamicResource-Markuperweiterung. Es sei denn, die Formatvorlagen selbst enthalten Verweise auf potenzielle Laufzeitverweise wie Systemressourcen oder Benutzereinstellungen, wird der StaticResource-Markuperweiterungsverweis auf eine Formatvorlage normalerweise für die Leistung empfohlen.

TemplateResourceKey
x:Key-Richtlinie-Zeichenfolgenwert , der auf die Vorlage verweist, die als Ressource angefordert wird.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld ItemTemplateProperty
Metadateneigenschaften auf true festgelegt Keine

Gilt für:

Siehe auch