ItemsControl.ItemTemplate 속성

정의

각 항목을 표시하는 데 사용되는 DataTemplate 을 가져오거나 설정합니다.Gets or sets the DataTemplate used to display each item.

public:
 property System::Windows::DataTemplate ^ ItemTemplate { System::Windows::DataTemplate ^ get(); void set(System::Windows::DataTemplate ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.DataTemplate ItemTemplate { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.ItemTemplate : System.Windows.DataTemplate with get, set
Public Property ItemTemplate As DataTemplate

속성 값

DataTemplate

데이터 개체의 시각화를 지정하는 DataTemplate 입니다.A DataTemplate that specifies the visualization of the data objects. 기본값은 null입니다.The default is null.

특성

예제

다음 예제에서는 인라인을 만드는 방법을 보여 줍니다 DataTemplate .The following example shows how to create a DataTemplate inline. DataTemplate 각 데이터 항목이 내에서 세 개의 요소로 나타나도록 지정 합니다 TextBlock StackPanel .The DataTemplate specifies that each data item appears as three TextBlock elements within a StackPanel. 이 예제에서 데이터 개체는 라는 클래스입니다 Task .In this example, the data object is a class called Task. TextBlock이 템플릿의 각 요소는 클래스의 속성에 바인딩됩니다 Task .Note that each TextBlock element in this template is bound to a property of the Task class.

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel>
         <TextBlock Text="{Binding Path=TaskName}" />
         <TextBlock Text="{Binding Path=Description}"/>
         <TextBlock Text="{Binding Path=Priority}"/>
       </StackPanel>
     </DataTemplate>
   </ListBox.ItemTemplate>
 </ListBox>

리소스 섹션에서을 정의 하는 것이 더 일반적입니다 DataTemplate . 다음 예제와 같이 재사용 가능한 개체가 될 수 있습니다.It is more common to define a DataTemplate in the resources section so it can be a reusable object, as in the following example:

<Window.Resources>
<DataTemplate x:Key="myTaskTemplate">
  <StackPanel>
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>
  </StackPanel>
</DataTemplate>
</Window.Resources>

이제 다음 예제와 같이 myTaskTemplate을 리소스로 사용할 수 있습니다.Now you can use myTaskTemplate as a resource, as in the following example:

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

전체 샘플을 보려면 Introduction to Data Templating Sample(데이터 템플릿 샘플 소개)을 참조하세요.For the complete sample, see Introduction to Data Templating Sample.

설명

를 사용 하 여 ItemTemplate 데이터 개체의 시각화를 지정 합니다.You use the ItemTemplate to specify the visualization of the data objects. ItemsControl가 컬렉션 개체에 바인딩되고를 사용 하 여 특정 표시 명령을 제공 하지 않는 경우 DataTemplate UIUI 각 항목의 결과는 기본 컬렉션의 각 개체에 대 한 문자열 표현입니다.If your ItemsControl is bound to a collection object and you do not provide specific display instructions using a DataTemplate, the resulting UIUI of each item is a string representation of each object in the underlying collection.

에서를 설정 하면 ItemTemplate ItemsControl UIUI 이 다음과 같이 생성 됩니다 (를 ListBox 예제로 사용).When you set an ItemTemplate on an ItemsControl, the UIUI is generated as follows (using the ListBox as an example):

  1. 콘텐츠를 생성 하는 동안는 ItemsPanel ItemContainerGenerator 각 데이터 항목에 대 한 컨테이너를 만들기 위해에 대 한 요청을 시작 합니다.During content generation, the ItemsPanel initiates a request for the ItemContainerGenerator to create a container for each data item. 의 경우 ListBox 컨테이너는 ListBoxItem 입니다.For ListBox, the container is a ListBoxItem. 생성기는를 다시 호출 ItemsControl 하 여 컨테이너를 준비 합니다.The generator calls back into the ItemsControl to prepare the container.

  2. 준비 과정의 일부로는의를의로 복사 하는 작업이 포함 됩니다 ItemTemplate ListBox ContentTemplate ListBoxItem .Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. 모든 형식과 마찬가지로 ContentControl 의에는 ControlTemplate ListBoxItem 가 포함 ContentPresenter 됩니다.Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. 템플릿이 적용 되 면 ContentPresenter 가의에 바인딩된를 만듭니다 ContentTemplate ContentTemplate ListBoxItem .When the template is applied, it creates a ContentPresenter whose ContentTemplate is bound to the ContentTemplate of the ListBoxItem.

  4. 마지막으로는 ContentPresenter ContentTemplate 자신에 게 적용 되 고를 만듭니다 UIUI .Finally, the ContentPresenter applies that ContentTemplate to itself, and that creates the UIUI.

둘 이상의 정의 된 경우를 DataTemplate 프로그래밍 방식으로 선택 하 고 적용 하는 논리를 제공 하려면 DataTemplate 속성을 사용 ItemTemplateSelector 합니다.If you have more than one DataTemplate defined and you want to supply logic to programmatically choose and apply a DataTemplate, use the ItemTemplateSelector property.

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 ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

XAML 값XAML Values

ResourceExtensionResourceExtension
StaticResource 태그 확장또는 DynamicResource 태그 확장중 하나입니다.One of the following: StaticResource Markup Extension, or DynamicResource Markup Extension. 스타일 자체에 시스템 리소스 또는 사용자 기본 설정과 같은 잠재적 런타임 참조에 대 한 참조가 포함 되어 있지 않으면 일반적으로 스타일에 대 한 StaticResource 태그 확장 참조가 성능을 위해 권장 됩니다.Unless the styles themselves contain references to potential run-time references such as system resources or user preferences, StaticResource Markup Extension reference to a style is usually recommended for performance.

TemplateResourceKeyTemplateResourceKey
리소스를 요청 하는 템플릿을 참조 하는 X:Key 지시문 문자열 값입니다.x:Key Directive string value referring to the template being requested as a resource.

종속성 속성 정보Dependency Property Information

식별자 필드Identifier field ItemTemplateProperty
메타 데이터 속성 설정 trueMetadata properties set to true NoneNone

적용 대상

추가 정보