Freigeben über


ItemsControl.ItemTemplate Eigenschaft

Definition

Dient zum Abrufen oder Festlegen der DataTemplate zum Anzeigen der einzelnen Elemente verwendeten Elemente.

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

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

Attribute

Beispiele

Das folgende Beispiel zeigt, wie Sie eine DataTemplate Inline erstellen. Dies DataTemplate gibt an, dass jedes Datenelement in einem StackPanelElement als 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 im Ressourcenabschnitt zu definieren, damit es ein wiederverwendbares Objekt sein 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>

Jetzt können Sie myTaskTemplate als Ressource verwenden, wie im folgenden Beispiel gezeigt:

<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 Zum Angeben der Visualisierung der Datenobjekte. Wenn Sie ItemsControl an ein Auflistungsobjekt gebunden sind und keine spezifischen Anzeigeanweisungen mithilfe einer DataTemplateZeichenfolge angeben, ist die resultierende Benutzeroberfläche jedes Elements eine Zeichenfolgendarstellung jedes Objekts in der zugrunde liegenden Auflistung.

Wenn Sie eine ItemTemplate On-On-App ItemsControlfestlegen, wird die Benutzeroberfläche wie folgt generiert (mit dem ListBox folgenden Beispiel):

  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 wieder in den ItemsControl Container auf, um den Container vorzubereiten.

  2. Ein Teil der Vorbereitung umfasst das Kopieren des ItemTemplateListBox zu seinden ContentTemplateListBoxItemder .

  3. Ähnlich wie bei allen ContentControl Typen enthält dies ControlTemplate ein ListBoxItemContentPresenter. Wenn die Vorlage angewendet wird, erstellt sie eine ContentPresenter , deren ContentTemplate Bindung an die ContentTemplate der ListBoxItem.

  4. Schließlich gilt dies ContentPresenterContentTemplate für sich selbst, und das erstellt die Benutzeroberfläche.

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

Dies ItemsControl bietet große Flexibilität für die visuelle Anpassung und bietet viele Formatierungs- und Vorlageneigenschaften. Verwenden Sie die ItemContainerStyle Eigenschaft oder die ItemContainerStyleSelector Eigenschaft, um eine Formatvorlage festzulegen, um die Darstellung der Elemente zu beeinflussen, die die Datenelemente enthalten. For example, ListBoxthe generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. 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 Eigenschaft oder GroupStyleSelector die GroupStyle Eigenschaft verwenden.

Weitere Informationen finden Sie unter Data Templating Overview.

Verwendung von XAML-Attributen

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

XAML-Werte

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

TemplateResourceKeyx:Key Directive string value referring to the template being requested as a resource.

Informationen zur Abhängigkeitseigenschaft

Element Wert
Bezeichnerfeld ItemTemplateProperty
Auf Metadateneigenschaften festgelegt true Nichts

Gilt für:

Weitere Informationen