TemplateBinding Fragen



  • Hi, bin gerade dabei TemplateBindings zu verstehen. Nehmen wir z.B. mal das TemplateBinding für das SnapsToDevicePixels-Property des ContentPresenters. Wird der Wert nun an das SnapsToDevicePixels-Property des ContentPresenters selber (dann würde ich die explicite Angabe hier nicht verstehen) oder an den Wert des Buttons gebunden?

    <Style x:Key="ButtonStyle"
               TargetType="{x:Type Button}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border x:Name="ContentContainer">
                            <ContentPresenter Margin="{TemplateBinding Padding}"
                                              SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </Border>
    

    Und was würde passieren, wenn ich dem Style nun noch den folgenden Setter gebe:

    <Setter Property="SnapsToDevicePixels" Value="{TemplateBinding SnapsToDevicePixels}">
    

    ? Würde daraus nicht eine Endlosschleife resultieren?


  • Administrator

    TemplateBinding referenziert immer das Control , auf welches das Template angewandt wird.

    Student83 schrieb:

    Wird der Wert nun an das SnapsToDevicePixels-Property des ContentPresenters selber (dann würde ich die explicite Angabe hier nicht verstehen) oder an den Wert des Buttons gebunden?

    Es wird der Wert des Buttons gebunden. ContentPresenter stellt ja kein Template dar.

    Student83 schrieb:

    Und was würde passieren, wenn ich dem Style nun noch den folgenden Setter gebe:

    <Setter Property="SnapsToDevicePixels" Value="{TemplateBinding SnapsToDevicePixels}">
    

    ? Würde daraus nicht eine Endlosschleife resultieren?

    Es wäre ein ziemlich unnötiger Setter. Was genau passieren würde, weiss ich nicht. Ich würde aber mal sagen, es würde zusätzlicher Aufwand betrieben, welcher unnötig ist. Zu einer endlosschleife käme es wahrscheinlich nicht, weil die Bindings in WPF da recht gut sind, solche Rückkopplungen abzufangen.

    Grüssli


Anmelden zum Antworten