ContentPresenter richtig benutzen
Als erstes ein Beispiel, wie man es so oder in etwas anderer Form leider immer noch des Öfteren sehen kann.
<Grid>
<Button Name="button1">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Center" VerticalAlignment="Center">
<!—Warum bindet man das Content Propperty ein weiteres mal? -->
<ContentPresenter Content="{TemplateBinding Content}" />
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
Doch bei den beiden Presenter Objekten (ItemsPresenter und ContentPresenter) ist dieses gar nicht von Nöten, denn diese beiden Objekte bringen doch diese Bindung bereits von Haus aus mit. Das einzige was an dieser Stelle also wirklich gebraucht wird, ist eigentlich nur das der TargetType des ControlTemplates, auf das richtige Control oder zumindest auf den richtigen ControlType (ContentControl oder ItemsControl) gesetzt wird.