我想为菜单项实现一个“穷人”切换按钮。本质上,当它被选中时,它应该说“公制”,而当它未被选中时 - “英制”。我无法让它工作。
这是我尝试过的:
<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' 无法识别或无法访问”(与 Header 相同)。
当我这样做时,错误消失了<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>
没有效果。