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

정의

각 항목을 표시하는 데 사용되는 템플릿을 선택하는 사용자 지정 논리를 가져오거나 설정합니다.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

속성 값

논리를 제공하며 DataTemplateSelector을 반환하는 사용자 지정 DataTemplate 개체입니다.A custom DataTemplateSelector object that provides logic and returns a DataTemplate. 기본값은 null입니다.The default is null.

예제

다음 예에서 auctionItemDataTemplateSelector 리소스 이름 (해당 하는 AuctionItemDataTemplateSelector 클래스)에 할당 된를 ItemTemplateSelector 의 속성은 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>

다음 예제에서는 구현의 합니다 AuctionItemDataTemplateSelector 재정의 사용 하 여 클래스를 SelectTemplate 메서드: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

내에서 예제의 경우는 SelectTemplate 메서드 클래스는 값에 따라 적절 한 템플릿을 반환 하는 논리를 SpecialFeatures 의 속성을 item 전달 되는 개체입니다.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. 반환할 템플릿은 상위의 리소스에 위치한 Window 요소입니다.The template to return is found in the resources of the enveloping Window element.

설정한 경우는 ItemTemplateSelector 속성을는 ItemsControl 자동으로 호출에 전달 되는 SelectTemplate 메서드의 AuctionItemDataTemplateSelector 각는 컬렉션의 항목에 대 한는 ItemsControl 바인딩된.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. 호출 개체와 데이터 항목을 전달합니다.The call passes the data item as an object. DataTemplate 에서 반환 하는 메서드는 다음 해당 데이터 항목을 표시 하는 데 사용 됩니다.The DataTemplate that is returned by the method is then used to display that data item.

다른 예제를 보려면 데이터 템플릿 개요합니다.For another example, see Data Templating Overview.

설명

사용할는 ItemTemplate 데이터 개체의 시각화를 지정 합니다.You use the ItemTemplate to specify the visualization of the data objects. 정의 된 둘 이상의 템플릿을 있고 사용할 템플릿을 반환 하는 논리를 제공 하려는 경우이 속성을 사용 합니다.If you have more than one template defined and want to supply logic to return a template to use, then you use this property. 있으면이 속성은 무시 됩니다 ItemTemplate 설정 됩니다.Note that this property is ignored if ItemTemplate is set.

ItemsControl 시각적으로 사용자 지정에 대 한 뛰어난 유연성을 제공 하 고 대부분의 스타일 지정 및 템플릿 속성을 제공 합니다.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. 사용 된 ItemContainerStyle 속성 또는 ItemContainerStyleSelector 데이터 항목을 포함 하는 요소의 모양을 적용할 스타일을 설정 하는 속성입니다.Use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. 예를 들어 ListBox, 생성 된 컨테이너는 ListBoxItem 제어;에 대 한 ComboBox, 이들은 ComboBoxItem 컨트롤입니다.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. 항목의 레이아웃에 영향을 주는 사용 된 ItemsPanel 속성입니다.To affect the layout of the items, use the ItemsPanel property. 그룹화에 컨트롤을 사용 하는 경우 사용할 수 있습니다 합니다 GroupStyle 또는 GroupStyleSelector 속성입니다.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property.

자세한 내용은 데이터 템플릿 개요를 참조하세요.For more information, see Data Templating Overview.

XAML 특성 사용XAML Attribute Usage

<object ItemTemplateSelector="ResourceExtension SelectorResourceKey"/>  

XAML 값XAML Values

ResourceExtensionResourceExtension
다음 중 하나: StaticResource, 또는 DynamicResource합니다.One of the following: StaticResource, or DynamicResource. 스타일 자체 시스템 리소스 또는 사용자 기본 설정 등의 잠재적인 런타임 참조가 포함 되어 있지 않으면 StaticResource 스타일에 대 한 참조는 일반적으로 성능을 위해 권장 됩니다.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 리소스로 요청 중인 선택기를 참조 하는 문자열 값입니다.x:Key string value referring to the selector being requested as a resource.

종속성 속성 정보Dependency Property Information

식별자 필드Identifier field ItemTemplateSelectorProperty
메타 데이터 속성 설정 trueMetadata properties set to true 없음None

적용 대상

추가 정보