ItemsControl.ItemTemplate Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
Eine DataTemplate, die die Visualisierung der Datenobjekte angibt. Der Standardwert ist null
.
- Attribute
Beispiele
Das folgende Beispiel zeigt, wie Sie eine DataTemplate Inline erstellen. Gibt DataTemplate an, dass jedes Datenelement als drei TextBlock Elemente in einem StackPanelangezeigt 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 üblicher, ein DataTemplate im Ressourcenabschnitt zu definieren, damit es sich um ein wiederverwendbares Objekt handeln kann, wie im folgenden Beispiel gezeigt:
<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 den ItemTemplate , um die Visualisierung der Datenobjekte anzugeben. Wenn Ihr ItemsControl an ein Auflistungsobjekt gebunden ist und Sie keine spezifischen Anzeigeanweisungen mit einem DataTemplatebereitstellen, ist die resultierende Benutzeroberfläche jedes Elements eine Zeichenfolgendarstellung jedes Objekts in der zugrunde liegenden Auflistung.
Wenn Sie ein ItemTemplate für ein ItemsControlfestlegen, wird die Benutzeroberfläche wie folgt generiert (beispielweise ListBox verwendet):
Während der Inhaltsgenerierung initiiert der ItemsPanel eine Anforderung für die ItemContainerGenerator Erstellung eines Containers für jedes Datenelement. Für ListBoxist der Container ein ListBoxItem. Der Generator ruft zurück in den ItemsControl , um den Container vorzubereiten.
Ein Teil der Vorbereitung umfasst das Kopieren des ItemTemplateListBox zu sein der ContentTemplateListBoxItem.
Ähnlich wie bei allen ContentControl Typen enthält der ControlTemplate von ein ListBoxItem ein ContentPresenter. Wenn die Vorlage angewendet wird, wird ein ContentPresenter erstellt, dessen ContentTemplate an das ContentTemplate des ListBoxItemgebunden ist.
Schließlich wendet dies ContentPresenterContentTemplate auf sich selbst an und erstellt die Benutzeroberfläche.
Wenn Sie mehrere DataTemplate definiert haben und Logik bereitstellen möchten, um programmgesteuert eine DataTemplateauszuwählen und anzuwenden, verwenden Sie die ItemTemplateSelector -Eigenschaft.
Bietet ItemsControl eine große Flexibilität für die visuelle Anpassung und bietet viele Stil- und Vorlageneigenschaften. Verwenden Sie die ItemContainerStyle -Eigenschaft oder - ItemContainerStyleSelector Eigenschaft, um eine Formatvorlage festzulegen, die sich auf die Darstellung der Elemente auswirkt, die die Datenelemente enthalten. Beispielsweise ListBoxsind ListBoxItem die generierten Container Steuerelemente, für ComboBoxsind ComboBoxItem sie Steuerelemente. Verwenden Sie ItemsPanel die -Eigenschaft, um das Layout der Elemente zu beeinflussen. Wenn Sie die Gruppierung für Ihr Steuerelement verwenden, können Sie die GroupStyle -Eigenschaft oder GroupStyleSelector verwenden.
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. Sofern die Formatvorlagen nicht selbst Verweise auf potenzielle Laufzeitverweise wie Systemressourcen oder Benutzereinstellungen enthalten, wird der StaticResource-Markuperweiterungsverweis auf eine Formatvorlage normalerweise für die Leistung empfohlen.
TemplateResourceKeyx:Key Directive string value, der auf die Vorlage verweist, die als Ressource angefordert wird.
Informationen zur Abhängigkeitseigenschaft
Bezeichnerfeld | ItemTemplateProperty |
Metadateneigenschaften auf true festgelegt |
Keine |