このドキュメントはアーカイブされており、メンテナンスされていません。

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 内の 3 つの TextBlock 要素として表示することを指定します。この例では、データ オブジェクトは、Task と呼ばれるクラスです。このテンプレート内の TextBlock 要素は、それぞれ Task クラスの 1つのプロパティにバインドされることに注意してください。

<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 機能変更

表示: