Search code examples
wpfexpression-blendcontroltemplatedatatriggerribbon-control

What does Binding="{Binding (0)}" mean?


I found this:

<DataTrigger Value="True" Binding="{Binding (0)}">

triggers in RibbonMenuButton template. What does it mean? I've tried to google, but found nothing.

UPD more code:

<ControlTemplate x:Key="RibbonMenuButtonControlTemplate1" TargetType="{x:Type RibbonMenuButton}">
...
    <DataTrigger Binding="{Binding (0)}" Value="True">
        <Setter Property="TextElement.Foreground" TargetName="MainGrid" Value="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"/>
        <Setter Property="PathFill" TargetName="TwoLineText" Value="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"/>
        <Setter Property="CornerRadius" TargetName="OuterBorder" Value="0"/>
        <Setter Property="Background" TargetName="OuterBorder" Value="Transparent"/>
        <Setter Property="BorderBrush" TargetName="OuterBorder" Value="Transparent"/>
    </DataTrigger>
...

This code created in Blend after "edit template" button pressed on RibbonMenuButton control.


Solution

  • It looks like a bug. As far as I know, in WPF can not be Binding of this type. Below is a list of deficiencies, please pay attention to the first paragraph, quoted from connect.microsoft.com (archive):

    I'm trying to style the ribbon control (System.Windows.Controls.Ribbon) and I keep running into problems.

    • If I use Blend or another tool to copy the default template of the Ribbon, the RibbonGroup, the RibbonTab, etc. these templates have errors. There are Bindings like {Binding (0)}.

    • I cannot change the height of the ribbon control.

    • It's not possible to change the template of the RibbonGroup, to change the appearance of the separator and to place the header in the top left corner of the group.

    • It's not possible to add a label to the ApplicationMenuButton. Furthermore this button has a fixed width.

    • I can't manage to remove the borders at the bottom of the ribbon control.

    As I understand it, there is no hotfix.