ItemsControl.ItemTemplate Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u het item op of stelt u deze DataTemplate in om elk item weer te geven.
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
Waarde van eigenschap
Een DataTemplate die de visualisatie van de gegevensobjecten aangeeft. De standaardwaarde is null.
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u hoe u een DataTemplate inline maakt. Hiermee DataTemplate geeft u op dat elk gegevensitem wordt weergegeven als drie TextBlock elementen binnen een StackPanel. In dit voorbeeld is het gegevensobject een klasse met de naam Task. Houd er rekening mee dat elk TextBlock element in deze sjabloon is gebonden aan een eigenschap van de Task klasse.
<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>
Het is gebruikelijker om een DataTemplate in de sectie resources te definiëren, zodat het een herbruikbaar object kan zijn, zoals in het volgende voorbeeld:
<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>
U kunt nu myTaskTemplate als resource gebruiken, zoals in het volgende voorbeeld:
<ListBox Width="400" Margin="10"
ItemsSource="{Binding Source={StaticResource myTodoList}}"
ItemTemplate="{StaticResource myTaskTemplate}"/>
Voor het volledige voorbeeld, zie Inleiding tot data-templatesample.
Opmerkingen
U gebruikt de ItemTemplate functie om de visualisatie van de gegevensobjecten op te geven. Als uw ItemsControl object is gebonden aan een verzamelingsobject en u geen specifieke weergave-instructies opgeeft met behulp van een DataTemplate, is de resulterende gebruikersinterface van elk item een tekenreeksweergave van elk object in de onderliggende verzameling.
Wanneer u een ItemTemplate op een ItemsControlinstelt, wordt de gebruikersinterface als volgt gegenereerd (met behulp van het ListBox als voorbeeld):
Tijdens het genereren van inhoud wordt een ItemsPanel aanvraag gestart voor het ItemContainerGenerator maken van een container voor elk gegevensitem. Voor ListBoxis de container een ListBoxItem. De generator roept terug naar de ItemsControl container om de container voor te bereiden.
Een deel van de voorbereiding omvat het kopiëren van de ItemTemplateListBox te zijn ContentTemplate van de ListBoxItem.
Net als bij alle ContentControl typen bevat de ControlTemplate van een ListBoxItem .ContentPresenter Wanneer de sjabloon wordt toegepast, wordt er een ContentPresenter gemaakt waarvan ContentTemplate de is gebonden aan de ContentTemplateListBoxItem .
Ten slotte is dit ContentPresenterContentTemplate van toepassing op zichzelf en wordt de gebruikersinterface gemaakt.
Als u meer dan één DataTemplate gedefinieerd hebt en u logica wilt opgeven om programmatisch een DataTemplatete kiezen en toe te passen, gebruikt u de ItemTemplateSelector eigenschap.
Het ItemsControl biedt een grote flexibiliteit voor visuele aanpassing en biedt veel stijl- en verleidende eigenschappen. Gebruik de ItemContainerStyle eigenschap of de ItemContainerStyleSelector eigenschap om een stijl in te stellen die van invloed is op het uiterlijk van de elementen die de gegevensitems bevatten. De gegenereerde containers zijn bijvoorbeeld ListBoxbesturingselementen; voor ListBoxItem, ze zijn ComboBox besturingselementen.ComboBoxItem Als u de indeling van de items wilt beïnvloeden, gebruikt u de ItemsPanel eigenschap. Als u groepering op uw besturingselement gebruikt, kunt u de GroupStyle of GroupStyleSelector eigenschap gebruiken.
Zie Overzicht van gegevens templating voor meer informatie.
XAML-kenmerkgebruik
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>
XAML-waarden
ResourceExtension Een van de volgende opties: staticResource Markup Extension of DynamicResource Markup Extension. Tenzij de stijlen zelf verwijzingen bevatten naar mogelijke runtimeverwijzingen, zoals systeemresources of gebruikersvoorkeuren, wordt de staticResource Markup Extension-verwijzing naar een stijl meestal aanbevolen voor prestaties.
TemplateResourceKeyx:Sleutelrichtlijn tekenreekswaarde die verwijst naar de sjabloon die wordt aangevraagd als een resource.
Informatie over afhankelijkheidseigenschappen
| Item | Waarde |
|---|---|
| Id-veld | ItemTemplateProperty |
Eigenschappen van metagegevens ingesteld op true |
Geen |