2012-04-10 4 views
0

Ich habe folgende Datepicker Kontrolle:Bind-Knopf Inhalt zu Datepicker SelectedDate

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

Der ButtonDatePicker Stil ist wie folgt definiert:

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

mag ich die Content Eigenschaft des PART_Button Knopfes binden die Eigenschaft SelectedDate.Date des DatePicker selbst. Ich habe versucht, wie folgt aus:

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

, aber es funktioniert nicht. Der Inhalt der Schaltfläche ist "Kalender anzeigen" (ich habe dies nicht eingestellt) die ganze Zeit wie im Bild unten.

enter image description here

Haben Sie zu diesem Thema irgendwelche Vorschläge?

Antwort

1

ändern Sie den Knopf einen Textblock für seinen Inhalt zu verwenden:

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

Mit der richtigen String Aussage Ihrer Antwort Kombiniert ist das, was ich :) Danke brauchen. –

Verwandte Themen