ItemsControl.ItemTemplateSelector Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die benutzerdefinierte Logik für das Auswählen einer Vorlage ab, die zum Anzeigen der einzelnen Elemente verwendet wird, oder legt diese fest.
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
Eigenschaftswert
Ein benutzerdefiniertes DataTemplateSelector-Objekt, das Logik bereitstellt und eine DataTemplate zurückgibt. Der Standardwert ist null
.
- Attribute
Beispiele
Im folgenden Beispiel wird der auctionItemDataTemplateSelector
Ressourcenname (entspricht einer AuctionItemDataTemplateSelector
Klasse) der ItemTemplateSelector -Eigenschaft von ItemsControlzugewiesen.
<ItemsControl
Template="{StaticResource ScrollTemplate}"
ItemsSource="{Binding Source={StaticResource items_list}}"
ItemTemplateSelector="{StaticResource auctionItemDataTemplateSelector}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Das folgende Beispiel zeigt die Implementierung der AuctionItemDataTemplateSelector
-Klasse mit einer Außerkraftsetzung der 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 diesem Fall gibt es innerhalb der SelectTemplate -Methode der -Klasse logik, die entsprechende Vorlage basierend auf dem Wert der SpecialFeatures
-Eigenschaft des item
übergebenen Objekts zurückzugeben. Die Vorlage, die zurückgegeben werden soll, wird in den Ressourcen des umschließenden Window-Elements gesucht.
Wenn Sie die ItemTemplateSelector -Eigenschaft festlegen, wird angewiesen ItemsControl , automatisch die SelectTemplate -Methode von AuctionItemDataTemplateSelector
für jedes element in der Auflistung aufzurufen, an das gebunden ItemsControl ist. Der Aufruf übergibt das Datenelement als -Objekt. Die DataTemplate , die von der -Methode zurückgegeben wird, wird dann verwendet, um dieses Datenelement anzuzeigen.
Ein weiteres Beispiel finden Sie unter Übersicht über Datenvorlagen.
Hinweise
Verwenden Sie , ItemTemplate um die Visualisierung der Datenobjekte anzugeben. Wenn Sie mehrere Vorlagen definiert haben und Logik bereitstellen möchten, um eine zu verwendende Vorlage zurückzugeben, verwenden Sie diese Eigenschaft. Beachten Sie, dass diese Eigenschaft ignoriert wird, wenn ItemTemplate festgelegt ist.
Bietet ItemsControl eine große Flexibilität bei der visuellen Anpassung und bietet viele Formatierungs- und Vorlageneigenschaften. Verwenden Sie die ItemContainerStyle -Eigenschaft oder die ItemContainerStyleSelector -Eigenschaft, um einen Stil festzulegen, der sich auf die Darstellung der Elemente auswirkt, die die Datenelemente enthalten. Beispielsweise ListBoxsind ListBoxItem die generierten Container Steuerelemente, für ComboBoxsind sie ComboBoxItem Steuerelemente. Um das Layout der Elemente zu beeinflussen, verwenden Sie die ItemsPanel -Eigenschaft. Wenn Sie die Gruppierung für Ihr Steuerelement verwenden, können Sie die GroupStyle - oder GroupStyleSelector -Eigenschaft verwenden.
Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.
Verwendung von XAML-Attributen
<object ItemTemplateSelector="ResourceExtension SelectorResourceKey"/>
XAML-Werte
ResourceExtension Einer der folgenden: StaticResource
, oder DynamicResource
. Sofern die Stile selbst Keine Verweise auf potenzielle Laufzeitverweise wie Systemressourcen oder Benutzereinstellungen enthalten, StaticResource
wird der Verweis auf eine Formatvorlage für die Leistung in der Regel empfohlen.
SelectorResourceKeyx:Key
Zeichenfolgenwert, der auf den Selektor verweist, der als Ressource angefordert wird.
Informationen zur Abhängigkeitseigenschaft
Bezeichnerfeld | ItemTemplateSelectorProperty |
Metadateneigenschaften auf true festgelegt |
Keine |