이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
DataTemplate 클래스
Collapse the table of content
Expand the table of content

DataTemplate 클래스

업데이트: 2008년 7월

데이터 개체의 표시 구조에 대해 설명합니다.

네임스페이스:  System.Windows
어셈블리:  PresentationFramework(PresentationFramework.dll)
XAML의 XMLNS: http://schemas.microsoft.com/winfx/xaml/presentation

public class DataTemplate : FrameworkTemplate
public class DataTemplate extends FrameworkTemplate
public class DataTemplate extends FrameworkTemplate
<DataTemplate>
  VisualTree
</DataTemplate>

데이터 개체의 시각화를 지정하려면 DataTemplate을 사용합니다. DataTemplate 개체는 ListBox 등의 ItemsControl을 전체 컬렉션에 바인딩하는 경우에 특히 유용합니다. ListBox는 특정한 명령 없이 컬렉션에 있는 개체의 문자열 표현을 표시합니다. 이 경우 DataTemplate을 사용하여 데이터 개체의 모양을 정의할 수 있습니다. DataTemplate의 콘텐츠는 데이터 개체의 표시 구조가 됩니다.

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

다음 예제에서는 인라인으로 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}"/>


전체 샘플을 보려면 데이터 템플릿 샘플 소개를 참조하십시오.

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0에서 지원

날짜

변경 내용

원인

2008년 7월

새로운 멤버인 DataTemplateKey 속성이 추가되었습니다.

SP1 기능 변경

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft