ItemsControl.ItemTemplateSelector ItemsControl.ItemTemplateSelector ItemsControl.ItemTemplateSelector ItemsControl.ItemTemplateSelector Property

Definition

Ruft die benutzerdefinierte Logik für das Auswählen einer Vorlage ab, mit der die einzelnen Elemente angezeigt werden, oder legt diese Logik fest.Gets or sets the custom logic for choosing a template used to display each item.

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; }
member this.ItemTemplateSelector : System.Windows.Controls.DataTemplateSelector with get, set
Public Property ItemTemplateSelector As DataTemplateSelector

Eigenschaftswert

Ein benutzerdefiniertes DataTemplateSelector-Objekt, das Logik bereitstellt und ein DataTemplate zurückgibt.A custom DataTemplateSelector object that provides logic and returns a DataTemplate. Die Standardeinstellung ist null.The default is null.

Beispiele

Im folgenden Beispiel die auctionItemDataTemplateSelector Ressourcenname (entspricht einer AuctionItemDataTemplateSelector Klasse) zugewiesen wird die ItemTemplateSelector Eigenschaft der ItemsControl.In the following example, the auctionItemDataTemplateSelector resource name (corresponding to an AuctionItemDataTemplateSelector class) is assigned to the ItemTemplateSelector property of the ItemsControl.

<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 von der SelectTemplate Methode:The following example shows the implementation of the AuctionItemDataTemplateSelector class with an override of the SelectTemplate method:

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 in die SelectTemplate Methode der Klasse, besteht die Logik zum Zurückgeben der entsprechenden Vorlage basierend auf den Wert des der SpecialFeatures Eigenschaft der item übergebene Objekt.In this case, within the SelectTemplate method of the class, there is logic to return the appropriate template based on the value of the SpecialFeatures property of the item object passed. Die Vorlage, die zurückgegeben wurde gefunden, in den Ressourcen des umschließenden Window Element.The template to return is found in the resources of the enveloping Window element.

Beim Festlegen der ItemTemplateSelector -Eigenschaft, die ItemsControl gesteuert wird, um automatisch Aufrufen der SelectTemplate -Methode der AuctionItemDataTemplateSelector für jedes der Elemente in der Auflistung, die die ItemsControl gebunden ist.When you set the ItemTemplateSelector property, the ItemsControl is directed to automatically call the SelectTemplate method of AuctionItemDataTemplateSelector for each of the items in the collection to which the ItemsControl is bound. Der Aufruf wird das Datenelement als ein Objekt übergeben.The call passes the data item as an object. Die DataTemplate das zurückgegeben wird, indem die Methode wird dann verwendet, um die dieses Datenelement anzuzeigen.The DataTemplate that is returned by the method is then used to display that data item.

Ein weiteres Beispiel finden Sie unter Übersicht über Datenvorlagen.For another example, see Data Templating Overview.

Hinweise

Sie verwenden die ItemTemplate Sie die Visualisierung der Datenobjekte an.You use the ItemTemplate to specify the visualization of the data objects. Wenn Sie mehr als eine Vorlage definiert haben und die Logik zum Zurückgeben von einer zu verwendende Vorlage angeben möchten, verwenden Sie diese Eigenschaft.If you have more than one template defined and want to supply logic to return a template to use, then you use this property. Beachten Sie, dass diese Eigenschaft ignoriert wird, wenn ItemTemplate festgelegt ist.Note that this property is ignored if ItemTemplate is set.

Die ItemsControl bietet enorme Flexibilität bei der visuellen Anpassung und bietet zahlreiche Eigenschaften für Stile und Vorlagen.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Verwenden der ItemContainerStyle Eigenschaft oder das ItemContainerStyleSelector Eigenschaft, um ein Format, das die Darstellung der Elemente, die die Datenelemente enthalten festzulegen.Use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. Beispielsweise ListBox, werden die generierten Container ListBoxItem -Steuerelemente für ComboBox, sie sind ComboBoxItem Steuerelemente.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Um das Layout der Elemente beeinflussen möchten, verwenden die ItemsPanel Eigenschaft.To affect the layout of the items, use the ItemsPanel property. Wenn Sie Gruppierung für das Steuerelement verwenden, können Sie mithilfe der GroupStyle oder GroupStyleSelector Eigenschaft.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property.

Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.For more information, see Data Templating Overview.

Verwendung von XAML-AttributenXAML Attribute Usage

<object ItemTemplateSelector="ResourceExtension SelectorResourceKey"/>  

XAML-WerteXAML Values

ResourceExtensionResourceExtension
Eine der folgenden: StaticResource, oder DynamicResource.One of the following: StaticResource, or DynamicResource. Wenn die Stile an sich selbst verweisen auf potenzielle Laufzeitverweise, z. B. Systemressourcen oder benutzereinstellungen, enthalten StaticResource Verweis auf einen Stil wird in der Regel für Leistung empfohlen.Unless the styles themselves contain references to potential run-time references such as system resources or user preferences, StaticResource reference to a style is usually recommended for performance.

SelectorResourceKeySelectorResourceKey
x:Key String-Wert, auf die Auswahl, die als eine Ressource angefordert wird.x:Key string value referring to the selector being requested as a resource.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

Feld "ID"Identifier field ItemTemplateSelectorProperty
Legen Sie auf der Metadaten-Eigenschaften trueMetadata properties set to true NoneNone

Gilt für:

Siehe auch