Share via


ItemsControl.ItemTemplate 속성

정의

각 항목을 표시하는 데 사용되는 DataTemplate 을 가져오거나 설정합니다.

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 입니다. 기본값은 null입니다.

특성

예제

다음 예제에서는 인라인을 DataTemplate 만드는 방법을 보여줍니다. 는 DataTemplate 각 데이터 항목이 내에 StackPanelTextBlock 개의 요소로 표시되도록 지정합니다. 이 예제에서 데이터 개체는 라는 Task클래스입니다. 이 템플릿의 각 TextBlock 요소는 클래스의 Task 속성에 바인딩됩니다.

<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 것이 더 일반적입니다.

<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을 리소스로 사용할 수 있습니다.

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

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

설명

를 사용하여 ItemTemplate 데이터 개체의 시각화를 지정합니다. 가 ItemsControl 컬렉션 개체에 바인딩되어 있고 를 사용하여 DataTemplate특정 표시 지침을 제공하지 않는 경우 각 항목의 결과 UI는 기본 컬렉션에 있는 각 개체의 문자열 표현입니다.

에 를 ItemTemplateItemsControl설정하면 UI가 다음과 같이 생성됩니다(를 예로 사용 ListBox ).

  1. 콘텐츠를 생성 하는 동안 에 ItemsPanelItemContainerGenerator 한 요청을 시작 합니다 각 데이터 항목에 대 한 컨테이너를 만듭니다. 의 경우 ListBox컨테이너는 입니다 ListBoxItem. 생성기는 를 다시 호출 ItemsControl 하여 컨테이너를 준비합니다.

  2. 준비의 일부에는 의 를 의 로 복사하는 ItemTemplateListBox 작업이 포함됩니다 ContentTemplateListBoxItem.

  3. 모든 ContentControl 형식 ControlTemplate 과 마찬가지로 의 에는 ListBoxItemContentPresenter포함됩니다. 템플릿이 적용되면 의 에 ContentPresenter 바인딩된 ContentTemplateContentTemplateListBoxItem를 만듭니다.

  4. 마지막으로 은 ContentPresenter 자체 ContentTemplate 에 적용하고 UI를 만듭니다.

둘 이상의 DataTemplate 정의되어 있고 프로그래밍 방식으로 를 선택하고 적용하는 논리를 DataTemplate제공하려는 경우 속성을 사용합니다 ItemTemplateSelector .

ItemsControl 시각적 사용자 지정에 뛰어난 유연성을 제공하며 많은 스타일 지정 및 템플릿 속성을 제공합니다. ItemContainerStyle 속성 또는 ItemContainerStyleSelector 속성을 사용하여 데이터 항목을 포함하는 요소의 모양에 영향을 주는 스타일을 설정합니다. 예를 들어 ListBox, 생성 된 컨테이너는 ListBoxItem 제어;에 대 한 ComboBox, 이들은 ComboBoxItem 컨트롤입니다. 항목의 레이아웃에 영향을 주려면 속성을 사용합니다 ItemsPanel . 컨트롤에서 그룹화 를 사용하는 경우 또는 GroupStyleSelector 속성을 사용할 GroupStyle 수 있습니다.

자세한 내용은 데이터 템플릿 개요를 참조하세요.

XAML 특성 사용

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

XAML 값

ResourceExtensionStaticResource 태그 확장 또는 DynamicResource 태그 확장 중 하나입니다. 스타일 자체에 시스템 리소스 또는 사용자 기본 설정과 같은 잠재적인 런타임 참조에 대한 참조가 포함되지 않는 한, 일반적으로 성능에 대해 스타일에 대한 StaticResource 태그 확장 참조를 사용하는 것이 좋습니다.

TemplateResourceKeyx:Key 지시문 문자열 값은 리소스로 요청되는 템플릿을 참조합니다.

종속성 속성 정보

식별자 필드 ItemTemplateProperty
메타 데이터 속성 설정 true 없음

적용 대상

추가 정보