この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

DataTemplate クラス

データ オブジェクトのビジュアル構造を記述します。

名前空間:  System.Windows
アセンブリ :  System.Windows (System.Windows.dll 内)

public class DataTemplate : FrameworkTemplate
<DataTemplate ...>
  templateContent
</DataTemplate>

XAML の値

templateContent

この DataTemplate を定義するオブジェクトのツリー。 このツリーには 1 つのルート要素が必要で、そのルート要素は 0 個以上の子要素を持つことができます。

DataTemplate 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドSilverlight for Windows Phone によるサポートDataTemplate() DataType プロパティを初期化せずに、DataTemplate クラスの新しいインスタンスを初期化します。
パブリック メソッドDataTemplate(Object) DataTemplate クラスの新しいインスタンスを初期化し、DataType プロパティを指定した値に設定します。
このページのトップへ

  名前説明
パブリック プロパティDataTypeこの DataTemplate の対象となる型を取得または設定します。
パブリック プロパティSilverlight for Windows Phone によるサポートDispatcherこのオブジェクトに関連付けられている Dispatcher を取得します。 (DependencyObject から継承されます。)
このページのトップへ

  名前説明
パブリック メソッドSilverlight for Windows Phone によるサポートCheckAccess呼び出し元のスレッドがこのオブジェクトにアクセスできるかどうかを確認します。 (DependencyObject から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートClearValue依存関係プロパティのローカル値をクリアします。 (DependencyObject から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートEquals(Object)指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドSilverlight for Windows Phone によるサポートFinalize Object がガベージ コレクションにより収集される前に、オブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートGetAnimationBaseValueアニメーションがアクティブでない場合に適用される、Silverlight 依存関係プロパティに対し設定されている基本値を返します。 (DependencyObject から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートGetValue DependencyObject から依存関係プロパティの現在の有効値を返します。 (DependencyObject から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートLoadContent DataTemplate UIElement オブジェクトを作成します。
プロテクト メソッドSilverlight for Windows Phone によるサポートMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートReadLocalValueローカル値が設定されている場合、依存関係プロパティのローカル値を返します。 (DependencyObject から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートSetValue DependencyObject で依存関係プロパティのローカル値を設定します。 (DependencyObject から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
このページのトップへ

通常、DataTemplate を使用して、データの視覚表現を指定します。 DataTemplate オブジェクトは、ListBox などの ItemsControl をコレクション全体にバインドするときに特に便利です。 具体的に指示しなくても、ListBox は、コレクション内のオブジェクトの文字列表現を表示します。 この場合、DataTemplate を使用してデータ オブジェクトの外観を定義できます。 DataTemplate の内容が、データ オブジェクトのビジュアル構造になります。

データ バインディングは、DataTemplate でも使用できます。 たとえば、ListBoxCustomer オブジェクトのコレクションにバインドされ、ItemTemplate プロパティが DataTemplate に設定されているとします。 ListBox が作成されると、コレクション内の各 Customer に対して ListBoxItem が作成され、ListBoxItemDataContext が適切な顧客に設定されます。 つまり、最初の ListBoxItemDataContext は最初の顧客に、2 番目の ListBoxItemDataContext は 2 番目の顧客にという順番で設定されます。 DataTemplate 内の要素を Customer オブジェクトのプロパティにバインドできます。

DataTemplate を使用すると、複数の ContentControl オブジェクト間で UIElement オブジェクトを共有することもできます。 たとえば、アプリケーション内の複数のボタンで同じグラフィックスを使用するとします。 この場合、グラフィックスを含む DataTemplate を作成し、これをボタンの ContentTemplate として使用できます。 詳細については、ContentControl.ContentTemplate のトピックを参照してください。

DataTemplate は、object.ItemTemplate プロパティ要素の直接の子として配置できます。 また、DataTemplate をリソースとして定義し、このリソースを ItemTemplate プロパティの値として参照することもできます。

データ テンプレートを作成するための内容を定義する XAML の使用方法は、設定可能なプロパティとして公開されません。 これは、DataTemplate オブジェクト要素の XAML 処理に組み込まれている特別な動作です。

DataTemplate を使用して ListBox の項目を表示する例を次に示します。 この例では、ListBox は、Customer オブジェクトのコレクションにバインドされています。 DataTemplate には、FirstNameLastNameAddress の各プロパティにバインドされる TextBlock コントロールが含まれています。 データ バインディングの詳細については、「データ バインディング」を参照してください。


<Grid>
    <Grid.Resources>
        <src:Customers x:Key="customers"/>
    </Grid.Resources>

    <ListBox ItemsSource="{StaticResource customers}" Width="350" Margin="0,5,0,10">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Padding="5,0,5,0"
          Text="{Binding FirstName}" />
                    <TextBlock Text="{Binding LastName}" />
                    <TextBlock Text=", " />
                    <TextBlock Text="{Binding Address}" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>


Customer クラスと ListBox がバインドされるコレクションを次の例に示します。


public class Customer
{
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public String Address { get; set; }

    public Customer(String firstName, String lastName, String address)
    {
        this.FirstName = firstName;
        this.LastName = lastName;
        this.Address = address;
    }

}

public class Customers : ObservableCollection<Customer>
{
    public Customers()
    {
        Add(new Customer("Michael", "Anderberg",
                "12 North Third Street, Apartment 45"));
        Add(new Customer("Chris", "Ashton",
                "34 West Fifth Street, Apartment 67"));
        Add(new Customer("Cassie", "Hicks",
                "56 East Seventh Street, Apartment 89"));
        Add(new Customer("Guido", "Pica",
                "78 South Ninth Street, Apartment 10"));
    }

}


Silverlight

サポート対象 : 5、4、3

Silverlight for Windows Phone

サポート対象 : Windows Phone OS 7.1、Windows Phone OS 7.0

Silverlight でサポートされるオペレーティング システムの詳細については、「サポートされているオペレーティング システムとブラウザー」を参照してください。

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

コミュニティの追加

追加
表示: