0

次の DatePicker コントロールがあります。

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

Button のプロパティを DatePicker 自体のContentプロパティにバインドしたいと考えています。私はこのように試しました:PART_ButtonSelectedDate.Date

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

しかし、うまくいきません。ボタンの内容は、下の写真のように常に「カレンダーを表示」(私は設定していません)です。

ここに画像の説明を入力

この問題について何か提案はありますか?

4

1 に答える 1

1

コンテンツにTextBlockを使用するようにボタンを変更します。

<Button x:Name="PART_Button">
    <TextBlock Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DatePicker}}, Path=SelectedDate.Date}"/>
</Button>
于 2012-04-10T17:59:32.290 に答える