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í 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
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 ):
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.
Součástí přípravy je kopírování ItemTemplate ListBox přípravku, který má být ContentTemplate ListBoxItem
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
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é |