I have the following DatePicker Control:
<DatePicker SelectedDate="{Binding DateFor}" Style="{StaticResource ButtonDatePicker}"/>
The ButtonDatePicker style is defined as below:
<Style x:Key="ButtonDatePicker" TargetType="{x:Type DatePicker}">
<Setter Property="IsTodayHighlighted" Value="True"/>
<Setter Property="SelectedDateFormat" Value="Short"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DatePicker}">
<Grid>
<Button x:Name="PART_Button" Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DatePicker}}, Path=SelectedDate.Date}"/>
<Grid IsHitTestVisible="False" Opacity="0">
<Popup x:Name="PART_Popup" AllowsTransparency="True" Placement="Bottom" StaysOpen="False"/>
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
I want to bind the Content property of the PART_Button Button to the SelectedDate.Date property of the DatePicker itself. I tried like this:
Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DatePicker}}, Path=SelectedDate.Date}"
but it doesn’t work. The content of the Button is “Show calendar” (I didn’t set this) all the time like in the picture below.

Do you have any suggestions on this issue?
Change the Button to use a TextBlock for its Content: