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 각 데이터 항목이 내에 StackPanel세 TextBlock 개의 요소로 표시되도록 지정합니다. 이 예제에서 데이터 개체는 라는 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 ).
콘텐츠를 생성 하는 동안 에 ItemsPanel 대 ItemContainerGenerator 한 요청을 시작 합니다 각 데이터 항목에 대 한 컨테이너를 만듭니다. 의 경우 ListBox컨테이너는 입니다 ListBoxItem. 생성기는 를 다시 호출 ItemsControl 하여 컨테이너를 준비합니다.
준비의 일부에는 의 를 의 로 복사하는 ItemTemplateListBox 작업이 포함됩니다 ContentTemplateListBoxItem.
모든 ContentControl 형식 ControlTemplate 과 마찬가지로 의 에는 ListBoxItem 가 ContentPresenter포함됩니다. 템플릿이 적용되면 의 에 ContentPresenter 바인딩된 ContentTemplateContentTemplateListBoxItem를 만듭니다.
마지막으로 은 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 |
없음 |
적용 대상
추가 정보
.NET