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

데이터 개체의 시각화를 지정하는 DataTemplate 입니다. 기본값은 null입니다.

특성

예제

다음 예제에서는 인라인을 만드는 DataTemplate 방법을 보여줍니다. 각 DataTemplate 데이터 항목이 에 세 TextBlock 개의 요소 StackPanel로 표시되도록 지정합니다. 이 예제에서 데이터 개체는 라는 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는 기본 컬렉션에 있는 각 개체의 문자열 표현입니다.

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

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

  2. 준비의 일부는 의 될 의 복사 ItemTemplate ListBoxContentTemplate ListBoxItem포함한다.

  3. 모든 ContentControl 형식과 마찬가지로 a의 ListBoxItem 형식 ControlTemplate 은 .을 ContentPresenter포함합니다. 템플릿이 적용되면 템플릿이 해당 템플릿의 ListBoxItem바인딩된 템플릿을 ContentTemplate 만듭니다 ContentPresenter ContentTemplate.

  4. 마지막으로, 자체 ContentTemplateContentPresenter 적용하고 UI를 만듭니다.

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

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

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

XAML 특성 사용

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

XAML 값

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

TemplateResourceKey
리소스로 요청되는 템플릿을 참조하는 x:Key 지시문 문자열 값입니다.

종속성 속성 정보

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

적용 대상

추가 정보