ItemsControl.ItemTemplate 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
각 항목을 표시하는 데 사용되는 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 데이터 항목이 에 세 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 ).
콘텐츠를 생성하는 ItemsPanel 동안 각 데이터 항목에 대한 ItemContainerGenerator 컨테이너를 만들라는 요청을 시작합니다. 의 경우 ListBox컨테이너는 ListBoxItem입니다. 생성기는 컨테이너를 ItemsControl 준비하기 위해 다시 호출합니다.
준비의 일부는 의 될 의 복사 ItemTemplate ListBox 를 ContentTemplate ListBoxItem포함한다.
모든 ContentControl 형식과 마찬가지로 a의 ListBoxItem 형식 ControlTemplate 은 .을 ContentPresenter포함합니다. 템플릿이 적용되면 템플릿이 해당 템플릿의 ListBoxItem바인딩된 템플릿을 ContentTemplate 만듭니다 ContentPresenter ContentTemplate.
마지막으로, 자체 ContentTemplate 에 ContentPresenter 적용하고 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 |
없음 |