Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.

ItemsControl.ItemTemplate-Eigenschaft

Ruft das DataTemplate ab, mit dem die einzelnen Elemente angezeigt werden, oder legt dieses fest.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[BindableAttribute(true)]
public DataTemplate ItemTemplate { get; set; }
<object>
  <object.ItemTemplate>
    <DataTemplate .../>
  </object.ItemTemplate>
</object>
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

XAML-Werte

ResourceExtension

Einer der folgenden: StaticResource-Markuperweiterung oder DynamicResource-Markuperweiterung. Sofern die Formate selbst keine Verweise auf mögliche Laufzeitverweise wie Systemressourcen oder Benutzereinstellungen enthalten, wird aus Leistungsgründen i. d. R. ein StaticResource-Markuperweiterung-Verweis auf ein Format empfohlen.

TemplateResourceKey

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

Eigenschaftswert

Typ: System.Windows.DataTemplate
Ein DataTemplate, das die Visualisierung der Datenobjekte angibt. Der Standardwert ist null.

Bezeichnerfeld

ItemTemplateProperty

Auf true festgelegte Metadateneigenschaften

Keine

Verwenden Sie das ItemTemplate, um die Visualisierung der Datenobjekte anzugeben. Wenn das ItemsControl an ein Auflistungsobjekt gebunden ist und Sie keine speziellen Anzeigeanweisungen mit einem DataTemplate angeben, ist die UI der einzelnen Elemente eine Zeichenfolgendarstellung der Objekte in der zugrunde liegenden Auflistung.

Wenn Sie ItemTemplate auf ItemsControl, Benutzeroberfläche folgendermaßen generiert werden (mithilfe ListBox als Beispiel):

Wenn Sie ein ItemTemplate einem ItemsControl zuweisen, wird die Benutzeroberfläche folgendermaßen generiert (Beispiel anhand einer ListBox):

  1. Während des Generierens des Inhalts initiiert das ItemsPanel eine Anforderung an den ItemContainerGenerator für das Erstellen eines Containers für die einzelnen Datenelemente. Für ListBox ist der Container ein ListBoxItem. Der Generator führt einen Rückruf im ItemsControl aus, um den Container vorzubereiten.

  2. Zur Vorbereitung gehört auch das Kopieren des ItemTemplate der ListBox, der als ContentTemplate des ListBoxItem fungiert.

  3. Wie sämtliche ContentControl-Typen enthält auch das ControlTemplate eines ListBoxItem einen ContentPresenter. Beim Anwenden der Vorlage erstellt dieses einen ContentPresenter, dessen ContentTemplate an das ContentTemplate des ListBoxItem gebunden ist.

  4. Abschließend wendet der ContentPresenter dieses ContentTemplate auf sich selbst an, wodurch die UI erstellt wird.

Wenn Sie mehr als ein DataTemplate definiert haben und Logik für die programmgesteuerte Auswahl und Anwendung eines DataTemplate bereitstellen möchten, verwenden Sie die ItemTemplateSelector-Eigenschaft.

Das ItemsControl bietet eine umfassende Flexibilität bei der visuellen Anpassung und stellt eine Vielzahl von Format- und Vorlageneigenschaften bereit. Verwenden Sie die ItemContainerStyle-Eigenschaft oder die ItemContainerStyleSelector-Eigenschaft, um ein Format festzulegen, das die Darstellung der Elemente angibt, die Datenelemente enthalten. Für ListBox sind die generierten Container z. B. ListBoxItem-Steuerelemente, und für ComboBox sind sie ComboBoxItem-Steuerelemente. Um das Layout der Elemente zu beeinflussen, verwenden Sie die ItemsPanel-Eigenschaft. Wenn Sie im Steuerelement Gruppierungen verwenden, können Sie die GroupStyle-Eigenschaft oder die GroupStyleSelector-Eigenschaft verwenden.

Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.

Im folgenden Beispiel wird veranschaulicht, wie eine DataTemplate inline erstellt wird. Das DataTemplate gibt an, dass die einzelnen Datenelemente als drei TextBlock-Elemente in einem StackPanel dargestellt werden. In diesem Beispiel ist das Datenobjekt eine Klasse mit dem Namen 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 jedoch üblicher, ein DataTemplate im Ressourcenabschnitt zu definieren, damit dieses wiederverwendet werden kann, wie im folgenden Beispiel veranschaulicht:


<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 Beispiel für Datenvorlagen.

.NET Framework

Unterstützt in: 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

Anzeigen:
© 2014 Microsoft