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; }
member this.ItemTemplate : System.Windows.DataTemplate with get, set
Public Property ItemTemplate As 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는 각 데이터 항목이 StackPanel내에서 3 개의 TextBlock 요소로 나타나도록 지정 합니다.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.

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

  1. 콘텐츠를 생성 하는 동안 ItemsPanelItemContainerGenerator에 대 한 요청을 시작 하 여 각 데이터 항목에 대 한 컨테이너를 만듭니다.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. 준비 과정에서 ListBoxItemContentTemplate ListBox ItemTemplate을 복사 하는 작업이 포함 됩니다.Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. 모든 ContentControl 형식과 마찬가지로 ListBoxItemControlTemplate에는 ContentPresenter포함 됩니다.Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. 템플릿이 적용 될 때 ListBoxItemContentTemplateContentTemplate 바인딩되는 ContentPresenter을 만듭니다.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 없음None

적용 대상

추가 정보