ItemsControl.ItemTemplate Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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í hodnota je null.
- Atributy
Příklady
Následující příklad ukazuje, jak vytvořit vložený DataTemplate . Určuje DataTemplate , že každá datová položka se zobrazí jako tři TextBlock prvky v rámci objektu StackPanel. V tomto příkladu je datový objekt volána Tasktřída . 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>
V části resources je běžnější definovat objekt DataTemplate , aby mohl být opakovaně použitelným objektem, jak je znázorněno 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 jako prostředek použít myTaskTemplate, jak je znázorněno 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 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é znázornění každého objektu v podkladové kolekci.
Při nastavení na ItemTemplate objektu ItemsControlse uživatelské rozhraní vygeneruje následujícím způsobem (jako ListBox příklad):
Během generování ItemsPanel obsahu zahájí požadavek na vytvoření kontejneru ItemContainerGenerator pro každou položku dat. Pro ListBox, kontejner je .ListBoxItem Generátor volá zpět do přípravy ItemsControl kontejneru.
Součástí přípravy je zkopírování ItemTemplateListBox toho, co má být ContentTemplate součástí ListBoxItempřípravku .
Podobně jako u všech ContentControl typů ControlTemplate obsahuje ListBoxItema ContentPresenter . Při použití šablony vytvoří, ContentPresenter jehož ContentTemplate je svázán s ContentTemplate .ListBoxItem
Nakonec se ContentPresenter použije ContentTemplate pro sebe 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 tuto vlastnost.
Poskytuje ItemsControl skvělou flexibilitu pro vizuální přizpůsobení 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 vygenerované ListBoxkontejnery jsou ListBoxItem ovládací prvky, pro , pro ComboBox, jsou ComboBoxItem 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 Jedna z následujících možností: Rozšíření značek StaticResource nebo Rozšíření značek DynamicResource. Pokud samotné styly neobsahují odkazy na potenciální odkazy za běhu, jako jsou systémové prostředky nebo uživatelské předvolby, pro zvýšení výkonu se obvykle doporučuje odkaz rozšíření značek StaticResource na styl.
TemplateResourceKeyx:Key – hodnota řetězce direktivy odkazující na šablonu, kterou požadujete jako prostředek.
Informace o vlastnosti závislosti
| Položka | Hodnota |
|---|---|
| Pole Identifikátor | ItemTemplateProperty |
Vlastnosti metadat nastavené na true |
None |