'宣言 Public Property EditTemplate As ControlTemplate
public ControlTemplate EditTemplate {get; set;}
ValueEditor は以下の 2 つの ControlTemplate プロパティを公開します。基本 Control クラスから継承する Template プロパティおよび EditTemplate プロパティです。エディターが表示モードの時には Template プロパティの値が使用されますが、エディターが編集モードの時には EditTemplate プロパティの値が使用されます。EditTemplate が指定されていない場合、エディターは編集モードと表示モードの両方で Template プロパティの値を使用します。つまり、Template プロパティが必要ですが、EditTemplate は null となります。ただし、そうする場合、Template プロパティによって指定されたコントロール テンプレートは編集をサポートする必要もあります。
たとえば、 の Template プロパティはコンテンツを表示するために TextBlock を使用します。EditTemplate は編集もサポートする必要があるので、この EditTemplate は TextBox を使用してコンテンツを表示および編集します。TextBlock は TextBox より効率的であるため、この種の構成によって描画速度は非常に向上します。特に、各セルに ValueEditor のインスタンスがある XamDataGrid の場合のように多数のエディター インスタンスを描画する時には効率が上がります。XamDataGrid のようなコントロールでは、一度に編集モードにできるセルはひとつだけです。したがって、一度に EditTemplate を使用する XamDataGrid 内の ValueEditor インスタンスはひとつだけとなります。一方、残りは Template プロパティによって提供されたより効率的なコントロール テンプレートを使用します。
注: エディターは Template および EditTemplate プロパティに対してデフォルト値を提供します。エディターによって使用されるデフォルト コントロール テンプレートを変更しない限り、一般的にこれらのプロパティを設定する必要がありません。
注: エディターが編集モードに入ると、Template プロパティは編集テンプレートを適用するために EditTemplate の値に設定されます。ただし、エディターが編集モードを終了する時にエディターは Template プロパティの元の値に戻る必要があるため、エディターは Template プロパティの元の値を保存します。これによって、エディターが編集モードを終了すると元に戻ることができます。