ItemsControl.ItemTemplateSelector 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 de aangepaste logica op voor het kiezen van een sjabloon die wordt gebruikt om elk item weer te geven.
public:
property System::Windows::Controls::DataTemplateSelector ^ ItemTemplateSelector { System::Windows::Controls::DataTemplateSelector ^ get(); void set(System::Windows::Controls::DataTemplateSelector ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.Controls.DataTemplateSelector ItemTemplateSelector { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.ItemTemplateSelector : System.Windows.Controls.DataTemplateSelector with get, set
Public Property ItemTemplateSelector As DataTemplateSelector
Waarde van eigenschap
Een aangepast DataTemplateSelector object dat logica biedt en een DataTemplate. De standaardwaarde is null.
- Kenmerken
Voorbeelden
In het volgende voorbeeld wordt de auctionItemDataTemplateSelector resourcenaam (die overeenkomt met een AuctionItemDataTemplateSelector klasse) toegewezen aan de ItemTemplateSelector eigenschap van de ItemsControl.
<ItemsControl
Template="{StaticResource ScrollTemplate}"
ItemsSource="{Binding Source={StaticResource items_list}}"
ItemTemplateSelector="{StaticResource auctionItemDataTemplateSelector}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
In het volgende voorbeeld ziet u de implementatie van de AuctionItemDataTemplateSelector klasse met een onderdrukking van de SelectTemplate methode:
using System.Windows;
using System.Windows.Controls;
namespace SDKSample
{
public class AuctionItemDataTemplateSelector : DataTemplateSelector
{
public override DataTemplate
SelectTemplate(object item, DependencyObject container)
{
FrameworkElement element = container as FrameworkElement;
if (element != null && item != null && item is AuctionItem)
{
AuctionItem auctionItem = item as AuctionItem;
Window window = Application.Current.MainWindow;
switch (auctionItem.SpecialFeatures)
{
case SpecialFeatures.None:
return
element.FindResource("AuctionItem_None")
as DataTemplate;
case SpecialFeatures.Color:
return
element.FindResource("AuctionItem_Color")
as DataTemplate;
}
}
return null;
}
}
}
Namespace SDKSample
Public Class AuctionItemDataTemplateSelector
Inherits DataTemplateSelector
Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate
Dim element As FrameworkElement = TryCast(container, FrameworkElement)
If element isnot Nothing andalso item IsNot Nothing AndAlso TypeOf item Is AuctionItem Then
Dim auctionItem As AuctionItem = TryCast(item, AuctionItem)
Select Case auctionItem.SpecialFeatures
Case SpecialFeatures.None
Return TryCast(element.FindResource("AuctionItem_None"), DataTemplate)
Case SpecialFeatures.Color
Return TryCast(element.FindResource("AuctionItem_Color"), DataTemplate)
End Select
End If
Return Nothing
End Function
End Class
End Namespace
In dit geval is er binnen de SelectTemplate methode van de klasse logica om de juiste sjabloon te retourneren op basis van de waarde van de SpecialFeatures eigenschap van het item doorgegeven object. De sjabloon die moet worden geretourneerd, vindt u in de resources van het omhullende Window element.
Wanneer u de ItemTemplateSelector eigenschap instelt, wordt de ItemsControl opdracht om automatisch de SelectTemplate methode aan te roepen voor AuctionItemDataTemplateSelector elk van de items in de verzameling waaraan de ItemsControl waarde is gebonden. De aanroep geeft het gegevensitem door als een object. De DataTemplate gegevens die door de methode worden geretourneerd, worden vervolgens gebruikt om dat gegevensitem weer te geven.
Zie Overzicht van gegevens templating voor een ander voorbeeld.
Opmerkingen
U gebruikt de ItemTemplate functie om de visualisatie van de gegevensobjecten op te geven. Als u meer dan één sjabloon hebt gedefinieerd en logica wilt opgeven om een te gebruiken sjabloon te retourneren, gebruikt u deze eigenschap. Houd er rekening mee dat deze eigenschap wordt genegeerd als ItemTemplate deze is ingesteld.
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 ItemTemplateSelector="ResourceExtension SelectorResourceKey"/>
XAML-waarden
ResourceExtension Een van de volgende opties: StaticResource, of DynamicResource. Tenzij de stijlen zelf verwijzingen bevatten naar mogelijke runtimeverwijzingen, zoals systeembronnen of gebruikersvoorkeuren, StaticResource wordt verwijzing naar een stijl meestal aanbevolen voor prestaties.
SelectorResourceKeyx:Key tekenreekswaarde die verwijst naar de kiezer die wordt aangevraagd als een resource.
Informatie over afhankelijkheidseigenschappen
| Item | Waarde |
|---|---|
| Id-veld | ItemTemplateSelectorProperty |
Eigenschappen van metagegevens ingesteld op true |
Geen |