ItemsControl.ItemTemplate ItemsControl.ItemTemplate ItemsControl.ItemTemplate ItemsControl.ItemTemplate Property

정의

각 항목을 표시하는 데 사용되는 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 각 데이터 항목 3으로 나타나도록 지정 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.

설정 하는 경우는 ItemTemplateItemsControlUIUI 같이 생성 됩니다 (사용 하 여를 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. 준비 과정의 복사를 포함 합니다 ItemTemplateListBox 되도록를 ContentTemplateListBoxItem.Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. 모든 비슷합니다 ContentControl 형식에는 ControlTemplateListBoxItem 포함를 ContentPresenter.Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. 템플릿이 적용 된 경우 생성을 ContentPresenter 해당 ContentTemplate 바인딩되는 ContentTemplateListBoxItem합니다.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

적용 대상

추가 정보