【发布时间】:2013-07-12 22:16:02
【问题描述】:
我想为菜单项实现一个“穷人”切换按钮。本质上,当它被选中时,它应该说“公制”,而当它未被选中时 - “英制”。我无法让它工作。
这是我尝试过的:
<MenuItem IsCheckable="True" IsChecked="True">
<Style>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Header" Value="Metric"/>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Header" Value="Imperial"/>
</Trigger>
</Style.Triggers>
</Style>
</MenuItem>
它给了我一个错误
成员 'IsChecked' 无法识别或无法访问”(同 用于标题)。
当我执行<Style TargetType="{x:Type MenuItem}"> 时,错误消失了,但它什么也没做。
我直接尝试不带<Style>
<MenuItem.Triggers>
<Trigger...>
</MenuItem.Triggers>
首先,它给了我与上面相同的错误,但是当我将属性更改为 Property="MenuItem.IsChecked" 时,它开始通知我只允许使用 EventTriggers。
我随后尝试使用DataTrigger 无效:
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type MenuItem}}, Path=IsChecked}" Value="True">
<Setter Property="Header" Value="Metric"/>
</DataTrigger>
没有效果。
【问题讨论】:
标签: wpf xaml binding datatrigger