 
このトピックでは、カスタム表示のフィールドを作成し、 xamDataPresenter™ コントロールで TemplateField を使用してテンプレートを編集する方法を説明します。
このトピックをより理解するために、以下のトピックを参照することをお勧めします。
このトピックは、以下のセクションで構成されます。
テンプレート フィールドは、 xamDataPresenter コントロールで、表示モードおよび編集モード用のカスタム データ テンプレートを指定する機能を提供します。
以下の表は、TemplateField コントロールの構成可能な要素を簡単に説明し、それらを構成するプロパティにマップします。詳細は、表の後に記載されています。
編集モードが選択されていない場合にフィールドの表示をカスタマイズするには、 TemplateField の DisplayTemplate プロパティを使用します。
基本データへのバインドを容易にするために、TemplateEditorValueBinding マークアップ拡張子を使用します。
以下の表は、任意の構成とそれを管理するプロパティ設定のマップを示します。
以下のスクリーンショットは、以下のコードを使用した結果、フィールドがどのように表示されるかを示しています。
 
以下のコードは、「給与」テンプレート フィールドを実装します。
XAML の場合:
<igDP:TemplateField Name="salary" >
    <!-- [ここに表示テンプレートを指定]  -->
    <!-- [ここに編集テンプレートを指定]  -->
</igDP:TemplateField>以下のコードは、TemplateField の表示テンプレートを実装します。
XAML の場合:
<igDP:TemplateField.DisplayTemplate>
    <DataTemplate>
        <TextBlock Text="{igEditors:TemplateEditorValueBinding}"
                   HorizontalAlignment="Right"/>
    </DataTemplate>
</igDP:TemplateField.DisplayTemplate>以下のコードは、前述のコードと同じ結果になります。
XAML の場合:
<igDP:TemplateField.DisplayTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding Path=(igEditors:TemplateEditor.Editor).Value, RelativeSource={RelativeSource Self}}"
                   HorizontalAlignment="Right"/>
    </DataTemplate>
</igDP:TemplateField.DisplayTemplate>カスタム フィールド エディターを使用してテンプレートの内容を指定するには、 TemplateField の EditTemplate を使用します。
基本データへのバインドを容易にするために、TemplateEditorValueBinding マークアップ拡張子を使用します。
以下の表は、任意の構成とそれを管理するプロパティ設定のマップを示します。
以下のスクリーンショットは、以下のコードを使用した結果、カスタム エディター フィールドがどのように表示され動作するかを示しています。
 
以下のコードは、「給与」テンプレート フィールドを実装します。
XAML の場合:
<igDP:TemplateField Name="salary" >
    <!-- [ここに表示テンプレートを指定]  -->
    <!-- [ここに編集テンプレートを指定]  -->
</igDP:TemplateField>以下のコードは、TemplateField の編集テンプレートを実装します。
XAML の場合:
<igDP:TemplateField.EditTemplate>
    <DataTemplate>
        <Border BorderBrush="LightGreen" BorderThickness="1">
            <igEditors:XamNumericEditor Value="{igEditors:TemplateEditorValueBinding}"                                                                  SpinButtonDisplayMode="Always"
SpinIncrement="50"/>
        </Border>
    </DataTemplate>
</igDP:TemplateField.EditTemplate>以下のコードは、前述のコードと同じ結果になります。
XAML の場合:
<igDP:TemplateField.EditTemplate>
    <DataTemplate>
        <Border BorderBrush="LightGreen" BorderThickness="1">
            <igEditors:XamNumericEditor Value="{Binding Path=(igEditors:TemplateEditor.Editor).Value, RelativeSource={RelativeSource Self}, UpdateSourceTrigger=PropertyChanged}"                                                       SpinButtonDisplayMode="Always"                                                                 SpinIncrement="50"/>
        </Border>
    </DataTemplate>
</igDP:TemplateField.EditTemplate>以下のコードは、 xamDataGrid   コントロールで TemplateField を使用する完全なコード例です。
以下の名前空間を使用します。
XAML の場合:
xmlns:igDP="http://infragistics.com/DataPresenter"
xmlns:igEditors="http://infragistics.com/Editors"XAML の場合:
<igDP:XamDataGrid x:Name="DataGrid" BindToSampleData="True" AutoFit="True">
    <igDP:XamDataGrid.FieldLayouts>
        <igDP:FieldLayout>
            <igDP:FieldLayout.Fields>
                <igDP:TextField Name="name"/>
                <igDP:TextField Name="department"/>
                <igDP:TextField Name="email" Visibility="Collapsed" />
                <igDP:TemplateField Name="salary" >
                    <igDP:TemplateField.DisplayTemplate>
                        <DataTemplate>
                            <TextBlock Text="{igEditors:TemplateEditorValueBinding}"
                                       HorizontalAlignment="Right"/>
                        </DataTemplate>
                    </igDP:TemplateField.DisplayTemplate>
                    <igDP:TemplateField.EditTemplate>
                        <DataTemplate>
                            <Border BorderBrush="LightGreen" BorderThickness="1">
                                <igEditors:XamNumericEditor Value="{igEditors:TemplateEditorValueBinding}"                                    SpinButtonDisplayMode="Always" SpinIncrement="50"/>
                            </Border>
                        </DataTemplate>
                    </igDP:TemplateField.EditTemplate>                                             </igDP:TemplateField>
            </igDP:FieldLayout.Fields>
        </igDP:FieldLayout>
    </igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>このトピックの追加情報については、以下のトピックも合わせてご参照ください。