ItemsControl.ItemTemplate ItemsControl.ItemTemplate ItemsControl.ItemTemplate ItemsControl.ItemTemplate Property


各項目を表示するために使用する DataTemplate を取得または設定します。Gets or sets the DataTemplate used to display each item.

 property System::Windows::DataTemplate ^ ItemTemplate { System::Windows::DataTemplate ^ get(); void set(System::Windows::DataTemplate ^ value); };
public System.Windows.DataTemplate ItemTemplate { get; set; }
member this.ItemTemplate : System.Windows.DataTemplate with get, set
Public Property ItemTemplate As DataTemplate


データ オブジェクトの視覚化を指定する DataTemplateA DataTemplate that specifies the visualization of the data objects. 既定値は、null です。The default is null.

次の例を作成する方法を示しています、DataTemplateインラインです。The following example shows how to create a DataTemplate inline. DataTemplate 3 つの各データ項目が表示されることを指定します。TextBlock内の要素をStackPanelします。The DataTemplate specifies that each data item appears as three TextBlock elements within a StackPanel. この例では、データ オブジェクトと呼ばれるクラスTaskします。In this example, the data object is a class called Task. 各に注意してくださいTextBlockのプロパティにこのテンプレート内の要素がバインドされている、Taskクラス。Note that each TextBlock element in this template is bound to a property of the Task class.

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}">
         <TextBlock Text="{Binding Path=TaskName}" />
         <TextBlock Text="{Binding Path=Description}"/>
         <TextBlock Text="{Binding Path=Priority}"/>

定義する方が一般的です、DataTemplate次の例のように、再利用可能なオブジェクトを指定できるので、リソース セクションでは。It is more common to define a DataTemplate in the resources section so it can be a reusable object, as in the following example:

<DataTemplate x:Key="myTaskTemplate">
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>

これで、次の例のように、myTaskTemplate をリソースとして使用できるようになります。Now you can use myTaskTemplate as a resource, as in the following example:

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

完全なサンプルについては、「Introduction to Data Templating Sample」(データ テンプレート サンプルの概要) をご覧ください。For the complete sample, see Introduction to Data Templating Sample.


使用する、ItemTemplateデータ オブジェクトの視覚化を指定します。You use the ItemTemplate to specify the visualization of the data objects. 場合、ItemsControlがバインドされているコレクションにオブジェクトは特定のディスプレイ手順については説明を使用して、 DataTemplate、結果のUIUI各項目の基になるコレクション内の各オブジェクトの文字列表現であります。If your ItemsControl is bound to a collection object and you do not provide specific display instructions using a DataTemplate, the resulting UIUI of each item is a string representation of each object in the underlying collection.

設定すると、ItemTemplate上、 ItemsControlUIUIが次のように生成されます (を使用して、ListBox例として)。When you set an ItemTemplate on an ItemsControl, the UIUI is generated as follows (using the ListBox as an example):

  1. コンテンツの生成中に、ItemsPanelに対する要求を開始、ItemContainerGeneratorに各データ項目のコンテナーを作成します。During content generation, the ItemsPanel initiates a request for the ItemContainerGenerator to create a container for each data item. ListBox、コンテナーでは、ListBoxItemします。For ListBox, the container is a ListBoxItem. 呼び出し、ジェネレーター、ItemsControlコンテナーを準備します。The generator calls back into the ItemsControl to prepare the container.

  2. 準備の一部のコピーするために、ItemTemplateListBoxする、ContentTemplateListBoxItemします。Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. すべてのようなContentControlの種類、ControlTemplateListBoxItemが含まれています、ContentPresenterします。Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. 作成テンプレートが適用されるときに、ContentPresenterContentTemplateにバインドされて、ContentTemplateListBoxItemします。When the template is applied, it creates a ContentPresenter whose ContentTemplate is bound to the ContentTemplate of the ListBoxItem.

  4. 最後に、ContentPresenter適用するContentTemplate自体を作成して、 UIUIFinally, the ContentPresenter applies that ContentTemplate to itself, and that creates the UIUI.

1 つ以上がある場合DataTemplate定義され、プログラムでを選択して適用するためのロジックを指定する、DataTemplateを使用して、ItemTemplateSelectorプロパティ。If you have more than one DataTemplate defined and you want to supply logic to programmatically choose and apply a DataTemplate, use the ItemTemplateSelector property.

ItemsControl視覚的なカスタマイズの柔軟性を提供し、多くのスタイルとテンプレートのプロパティを提供します。The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. 使用して、ItemContainerStyleプロパティまたはItemContainerStyleSelectorデータ項目を格納している要素の外観に影響するスタイルを設定するプロパティ。Use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. たとえば、 ListBox、生成されたコンテナーはListBoxItem制御のComboBoxComboBoxItemコントロール。For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. アイテムのレイアウトに影響を与えるを使用して、ItemsPanelプロパティ。To affect the layout of the items, use the ItemsPanel property. 使用することができます、コントロールをグループ化を使用している場合、GroupStyleまたはGroupStyleSelectorプロパティ。If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property.

詳しくは「 データ テンプレートの概要」をご覧ください。For more information, see Data Templating Overview.

XAML 属性の使用方法XAML Attribute Usage

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  


次のいずれかになります。StaticResource のマークアップ拡張機能、またはDynamicResource マークアップ拡張機能します。One of the following: StaticResource Markup Extension, or DynamicResource Markup Extension. スタイル自体は、システム リソースまたはユーザーの設定などの潜在的な実行時参照への参照を含めることがない限りStaticResource マークアップ拡張機能スタイルへの参照は、通常、パフォーマンスの推奨します。Unless the styles themselves contain references to potential run-time references such as system resources or user preferences, StaticResource Markup Extension reference to a style is usually recommended for performance.

X:key ディレクティブリソースとして要求されているテンプレートを参照する文字列値。x:Key Directive string value referring to the template being requested as a resource.

依存プロパティ情報Dependency Property Information

識別子フィールドです。Identifier field ItemTemplateProperty
メタデータのプロパティを設定するには trueMetadata properties set to true なしNone