無効になっている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。なぜそれが機能しないのですか?