2012-04-10 112 views
0

我有以下DatePicker控件:绑定按钮内容到DatePicker的SelectedDate

<DatePicker SelectedDate="{Binding DateFor}" Style="{StaticResource ButtonDatePicker}"/> 

ButtonDatePicker风格的定义如下:

<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> 

我想将PART_Button按钮的Content属性绑定到DatePicker本身的SelectedDate.Date属性。我试过像这样:

Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DatePicker}}, Path=SelectedDate.Date}" 

但它不起作用。按钮的内容是“显示日历”(我没有设置此项),如下图所示。

enter image description here

你对这个问题有什么建议?

回答

1

更改按钮使用一个TextBlock对其内容:

<Button x:Name="PART_Button"> 
    <TextBlock Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DatePicker}}, Path=SelectedDate.Date}"/> 
</Button> 
+0

结合有了正确的StringFormat陈述你的答案是什么,我需要:)谢谢。 – 2012-04-10 19:37:08