ItemsControl.ItemTemplate Właściwość

Definicja

Pobiera lub ustawia używane do wyświetlania DataTemplate każdego elementu.

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

Wartość właściwości

DataTemplate

Element DataTemplate określający wizualizację obiektów danych. Wartość domyślna to null.

Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak utworzyć DataTemplate wbudowany wiersz. Określa DataTemplate , że każdy element danych jest wyświetlany jako trzy TextBlock elementy w elemencie StackPanel. W tym przykładzie obiekt danych jest klasą o nazwie Task. Należy pamiętać, że każdy TextBlock element w tym szablonie jest powiązany z właściwością Task klasy.

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

Częściej definiuje element DataTemplate w sekcji zasobów, aby mógł być obiektem wielokrotnego użytku, jak w poniższym przykładzie:

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

Teraz możesz użyć myTaskTemplate jako zasobu, jak w poniższym przykładzie:

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

Aby zapoznać się z kompletnym przykładem, zobacz Wprowadzenie do przykładu templating danych.

Uwagi

Element służy ItemTemplate do określania wizualizacji obiektów danych. ItemsControl Jeśli element jest powiązany z obiektem kolekcji i nie podajesz określonych instrukcji wyświetlania przy użyciu DataTemplateelementu , wynikowy interfejs użytkownika każdego elementu jest reprezentacją ciągu każdego obiektu w kolekcji bazowej.

Po ustawieniu ItemTemplate elementu w obiekcie ItemsControlinterfejs użytkownika jest generowany w następujący sposób (przy użyciu przykładu ListBox ):

  1. Podczas generowania zawartości program inicjuje ItemsPanel żądanie utworzenia ItemContainerGenerator kontenera dla każdego elementu danych. W przypadku ListBoxkontenera jest to ListBoxItem. Generator wywołuje ponownie element w ItemsControl celu przygotowania kontenera.

  2. Część przygotowania obejmuje kopiowanie ItemTemplate elementu ListBox , który ma być ContentTemplate elementem ListBoxItem.

  3. Podobnie jak we wszystkich ContentControl typach, element ControlTemplate elementu ListBoxItem zawiera element ContentPresenter. Po zastosowaniu szablonu tworzy obiekt ContentPresenter , którego ContentTemplate element jest powiązany z ContentTemplate elementem ListBoxItem.

  4. Na koniec element ContentPresenter dotyczy ContentTemplate samego siebie i tworzy interfejs użytkownika.

Jeśli masz więcej niż jedną zdefiniowaną DataTemplate i chcesz podać logikę DataTemplate, aby programowo wybrać i zastosować element , użyj ItemTemplateSelector właściwości .

Zapewnia ItemsControl dużą elastyczność dostosowywania wizualizacji i zapewnia wiele właściwości stylów i szablonów. ItemContainerStyle Użyj właściwości lub ItemContainerStyleSelector właściwości, aby ustawić styl, aby wpłynąć na wygląd elementów zawierających elementy danych. Na przykład w przypadku ListBoxelementów , wygenerowane kontenery są ListBoxItem kontrolkami. W przypadku ComboBoxpolecenia są to ComboBoxItem kontrolki. Aby wpłynąć na układ elementów, użyj ItemsPanel właściwości . Jeśli używasz grupowania w kontrolce, możesz użyć GroupStyle właściwości or GroupStyleSelector .

Aby uzyskać więcej informacji, zobacz Omówienie tworzenia szablonów danych.

Użycie atrybutu języka XAML

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

Wartości XAML

ResourceExtension
Jedno z następujących: StaticResource Markup Extension lub DynamicResource Markup Extension. Jeśli style same nie zawierają odwołań do potencjalnych odwołań do czasu wykonywania, takich jak zasoby systemowe lub preferencje użytkownika, odwołanie do rozszerzenia StaticResource Markup do stylu jest zwykle zalecane do wydajności.

TemplateResourceKey
x:Klucz wartość ciągu dyrektywy odwołująca się do żądanego szablonu jako zasobu.

Informacje dotyczące właściwości zależności

Pole identyfikatora ItemTemplateProperty
Właściwości metadanych ustawione na true Brak

Dotyczy

Zobacz też