無効になっているtrigger
を自動的に非表示にするためにを使用したい。このようなMenuItem
特定の内部で自分のスタイルを使用すると、機能します-MenuItem
<MenuItem
Command="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ContextMenu}},
Path=PlacementTarget.DataContext.ExportCommand}"
Header="Export...">
<MenuItem.Style>
<Style TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
</MenuItem.Style>
</MenuItem>
しかし、同じものstyle
をこのように配置すると、ResourceDictionary
機能しません-
<Style x:Key="{x:Type MenuItem}" TargetType="{x:Type MenuItem}" >
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
すべてのメニュー項目にこの動作をさせたいのですが、このスタイルをすべてMenuItem
の内部に配置したくありませんContextMenu
。なぜそれが機能しないのですか?