ContextMenu不更新父更改

时间:2014-10-22 22:32:16

标签: wpf contextmenu

我有以下简单的例子

 <ContextMenu x:Shared="false">
        <MenuItem Header="Usuń" CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Parent}"/>
        <MenuItem CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Parent}">
            <MenuItem.Style>
                <Style TargetType="MenuItem">
                    <Setter Property="Header" Value="On"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Parent.IsEnabled}" Value="False">
                            <Setter Property="Header" Value="Off"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </MenuItem.Style>
        </MenuItem>
    </ContextMenu>

第一次创建它时,它将Header的值设置为On,但是在time属性中IsEnabled设置为false并且不反映任何更改。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在这种情况下,它似乎是因为元素的父级没有改变。尝试使用不同的RelativeSource(未经测试的示例):

<DataTrigger Binding="{Binding IsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1}}" 
             Value="False">