ItemsControl.ItemTemplate Vlastnost

Definice

Získá nebo nastaví DataTemplate použité k zobrazení jednotlivých položek.

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

Hodnota vlastnosti

DataTemplate

A DataTemplate , která určuje vizualizaci datových objektů. Výchozí formát je null.

Atributy

Příklady

Následující příklad ukazuje, jak vytvořit vložený DataTemplate . UrčujeDataTemplate, že každá datová položka se zobrazí jako tři TextBlock prvky v rámci .StackPanel V tomto příkladu je datový objekt třída s názvem Task. Všimněte si, že každý TextBlock prvek v této šabloně je vázán na vlastnost Task třídy.

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

Je běžnější definovat DataTemplate v oddílu prostředků, aby mohl být opakovaně použitelný objekt, jako v následujícím příkladu:

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

Teď můžete použít myTaskTemplate jako prostředek, jako v následujícím příkladu:

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

Kompletní ukázku najdete v tématu Úvod do ukázky šablonování dat.

Poznámky

Použijete ItemTemplate k určení vizualizace datových objektů. Pokud je vázán ItemsControl na objekt kolekce a neposkytujete konkrétní pokyny k zobrazení pomocí DataTemplate, výsledné uživatelské rozhraní každé položky je řetězcová reprezentace každého objektu v podkladové kolekci.

Když nastavíte na hodnotu ItemTemplate ItemsControl, uživatelské rozhraní se vygeneruje následujícím způsobem (pomocí příkladu ListBox ):

  1. Během generování ItemsPanel obsahu zahájí požadavek na vytvoření kontejneru ItemContainerGenerator pro každou datovou položku. Pro ListBox, kontejner je .ListBoxItem Generátor volá zpět do ItemsControl přípravy kontejneru.

  2. Součástí přípravy je kopírování ItemTemplate ListBox přípravku, který má být ContentTemplate ListBoxItem

  3. Podobně jako u všech ContentControl typů ControlTemplate ListBoxItem obsahuje ContentPresentera . Při použití šablony vytvoří, ContentPresenter jejíž ContentTemplate je vázán na ContentTemplate .ListBoxItem

  4. ContentPresenter Nakonec se ContentTemplate to týká samotného a vytvoří uživatelské rozhraní.

Pokud máte definovaných více než jednu DataTemplate a chcete zadat logiku pro programový výběr a použití DataTemplate, použijte ItemTemplateSelector vlastnost.

Poskytuje ItemsControl velkou flexibilitu pro přizpůsobení vizuálu a poskytuje mnoho vlastností stylů a šablon. ItemContainerStyle Pomocí vlastnosti nebo ItemContainerStyleSelector vlastnosti nastavte styl, který má vliv na vzhled prvků, které obsahují datové položky. Například pro ListBoxvygenerované kontejnery jsou ListBoxItem ovládací prvky; pro ComboBox, jsou ComboBoxItem to ovládací prvky. Chcete-li ovlivnit rozložení položek, použijte ItemsPanel vlastnost. Pokud používáte seskupení na ovládacím prvku, můžete použít GroupStyle vlastnost nebo GroupStyleSelector vlastnost.

Další informace najdete v tématu Přehled šablon dat.

Použití atributu XAML

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

Hodnoty XAML

ResourceExtension
Jedno z následujících možností: StaticResource Markup Extension nebo DynamicResource Markup Extension. Pokud samotné styly neobsahují odkazy na potenciální odkazy na běhové časy, jako jsou systémové prostředky nebo uživatelské předvolby, pro zvýšení výkonu se obvykle doporučuje odkaz na rozšíření značek StaticResource na styl.

TemplateResourceKey
x:Key – řetězcová hodnota odkazující na šablonu, kterou požadujete jako prostředek.

Informace o vlastnosti závislosti

Pole identifikátoru ItemTemplateProperty
Vlastnosti metadat nastavené na true Žádné

Platí pro

Viz také