Sdílet prostřednictvím


ItemsControl.ItemTemplate Vlastnost

Definice

Získá nebo nastaví DataTemplate použité k zobrazení každé položky.

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

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 řádek. Určuje DataTemplate , že se každá datová položka zobrazí jako tři TextBlock prvky v rámci objektu 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>

Běžnější je definovat objekt DataTemplate v části resources, aby to 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 šablon dat.

Poznámky

Použijete k ItemTemplate určení vizualizace datových objektů. Pokud je objekt ItemsControl svázaný s objektem kolekce a neposkytnete konkrétní pokyny k zobrazení pomocí DataTemplate, výsledné uživatelské rozhraní každé položky je řetězcovou reprezentací každého objektu v podkladové kolekci.

Když nastavíte u ItemTemplate objektu ItemsControl, uživatelské rozhraní se vygeneruje následujícím způsobem (jako příklad použijeme ListBox ):

  1. Během generování ItemsPanel obsahu zahájí požadavek na vytvoření kontejneru ItemContainerGenerator pro každou položku dat. Pro ListBoxje kontejnerem .ListBoxItem Generátor zavolá zpět do ItemsControl , aby připravil kontejner.

  2. Součástí přípravy je zkopírování ItemTemplateListBox souboru , který ContentTemplate má být .ListBoxItem

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

  4. Nakonec to ContentPresenter použije ContentTemplate sám na sebe a vytvoří uživatelské rozhraní.

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

Poskytuje ItemsControl velkou flexibilitu pro vizuální přizpůsobení a poskytuje mnoho vlastností stylů a šablon. ItemContainerStyle Pomocí vlastnosti nebo ItemContainerStyleSelector vlastnosti můžete nastavit styl tak, aby ovlivnil vzhled prvků, které obsahují datové položky. Například pro ListBoxjsou vygenerované kontejnery ListBoxItem ovládací prvky, pro ComboBoxjsou to ComboBoxItem ovládací prvky. Chcete-li ovlivnit rozložení položek, použijte ItemsPanel vlastnost . Pokud u ovládacího prvku používáte seskupování, můžete použít GroupStyle vlastnost nebo GroupStyleSelector .

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

Použití atributu XAML

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

Hodnoty XAML

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

TemplateResourceKeyx:Key hodnota řetězce direktivy odkazující na šablonu, která se požaduje jako prostředek.

Informace o vlastnosti závislosti

Pole Identifikátor ItemTemplateProperty
Vlastnosti metadat nastavené na true Žádné

Platí pro

Viz také