ItemsControl.ItemTemplateSelector 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
각 항목을 표시하는 데 사용되는 템플릿을 선택하는 사용자 지정 논리를 가져오거나 설정합니다.
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
속성 값
논리를 제공하고 DataTemplateSelector 을 반환하는 사용자 지정 DataTemplate개체입니다. 기본값은 null
입니다.
- 특성
예제
다음 예제 auctionItemDataTemplateSelector
에서는 리소스 이름(클래스에 AuctionItemDataTemplateSelector
해당)이 의 ItemsControl속성에 ItemTemplateSelector 할당됩니다.
<ItemsControl
Template="{StaticResource ScrollTemplate}"
ItemsSource="{Binding Source={StaticResource items_list}}"
ItemTemplateSelector="{StaticResource auctionItemDataTemplateSelector}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
다음 예제에서는 메서드의 재정의 AuctionItemDataTemplateSelector
를 사용하여 클래스의 구현을 SelectTemplate 보여줍니다.
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
있습니다. 반환할 템플릿은 상위의 리소스에 위치한 Window 요소입니다.
설정 하는 경우는 ItemTemplateSelector 속성을 ItemsControl 자동으로 호출 하는 합니다 의 메서드 AuctionItemDataTemplateSelector
를 컬렉션 SelectTemplate 에 있는 각 항목에 대 한 합니다 바인딩된 ItemsControl 합니다. 호출은 데이터 항목을 개체로 전달합니다.
DataTemplate 그런 다음 메서드에서 반환되는 를 사용하여 해당 데이터 항목을 표시합니다.
또 다른 예제는 데이터 템플릿 개요를 참조하세요.
설명
를 사용하여 ItemTemplate 데이터 개체의 시각화를 지정합니다. 둘 이상의 템플릿이 정의되어 있고 사용할 템플릿을 반환하는 논리를 제공하려는 경우 이 속성을 사용합니다. 이 설정된 경우 ItemTemplate 이 속성은 무시됩니다.
는 ItemsControl 시각적 사용자 지정에 뛰어난 유연성을 제공하며 다양한 스타일 지정 및 템플릿 속성을 제공합니다. 사용 된 ItemContainerStyle 속성 또는 ItemContainerStyleSelector 데이터 항목을 포함 하는 요소의 모양에 영향을 주는 스타일을 설정 합니다. 예를 들어 ListBox, 생성 된 컨테이너는 ListBoxItem 제어;에 대 한 ComboBox, 이들은 ComboBoxItem 컨트롤입니다. 항목의 레이아웃에 영향을 주려면 사용 된 속성입니다 ItemsPanel . 컨트롤에서 그룹화 를 사용하는 경우 또는 GroupStyleSelector 속성을 사용할 GroupStyle 수 있습니다.
자세한 내용은 데이터 템플릿 개요를 참조하세요.
XAML 특성 사용
<object ItemTemplateSelector="ResourceExtension SelectorResourceKey"/>
XAML 값
ResourceExtension , StaticResource
또는 DynamicResource
중 하나입니다. 스타일 자체에 시스템 리소스 또는 사용자 기본 설정 StaticResource
과 같은 잠재적인 런타임 참조에 대한 참조가 포함되지 않는 한 일반적으로 성능을 위해 스타일에 대한 참조를 사용하는 것이 좋습니다.
SelectorResourceKeyx:Key
리소스로 요청되는 선택기를 참조하는 문자열 값입니다.
종속성 속성 정보
식별자 필드 | ItemTemplateSelectorProperty |
메타 데이터 속성 설정 true |
없음 |
적용 대상
추가 정보
.NET