@nit の発言に加えて、 a の内容にはContentControl
内部自己接続がありません。Content
代わりに、プロパティが親コントロールのプロパティにバインドされたデータである他のコントロール内で使用されることが一般的です...これにより、自動的に動作するように見える場合があります。
<ControlTemplate x:Key="DataGridCellWrapTemplate" TargetType="{x:Type DataGridCell}">
<Border Name="DataGridCellBorder">
<ContentControl Content="{TemplateBinding Content}" />
</Border>
</ControlTemplate>
この場合、ContentControl.Content
プロパティは内部的にプロパティにデータ バインドされDataGridCell.Content
ます。これは、 の として設定されているものは何でもContent
、DataGridCell
この に表示されることを意味しますContentControl
。
は「データの保持者」と考えることができますが、ContentControl
これは必ずしもデータ バインドされたデータではありません。DataTemplate
コレクション コントロール内のデータ オブジェクトがどのように見えるべきかを定義するために を作成することに (ほとんどの場合) 慣れています。ContentControl
コレクションに for each アイテムがあるようなものと考えることができます。
これに続いて、 aを使用DataTemplate
して各コレクション アイテムがどのように見えるかを定義できる場合、1 を使用して a 内の単一のアイテムContentControl
がどのように見えるかを定義することもできます。
<ContentControl Content="{Binding SomeDataObject}"
ContentTemplate="{StaticResource SomeDataTemplateToDefineWhatTheDataLooksLike}" />
もちろん、プロパティDataTemplate
を設定せずに関連する型のa を宣言した場合はx:Key
、プロパティの設定を省略できContentTemplate
ます。したがってContentControl
、 は、同じ を使用してコレクションから 1 つのアイテムを表示するのに便利ですDataTempate
。
あなたのコメントに対処するには、それはStyle
a が使用する「制限されたデフォルト」が原因ですContentControl
。詳細については、MSDN のContentControl クラスページを参照することをお勧めします...そのページから:
ContentControl には、限定された既定のスタイルがあります。コントロールの外観を向上させたい場合は、新しい DataTemplate を作成できます。