C# WPF/XAML样式TargetType=";MenuItem“;不起作用

C# WPF/XAML样式TargetType=";MenuItem“;不起作用,c#,wpf,xaml,C#,Wpf,Xaml,我想在contextmenu中显示/隐藏menuitem标题旁边的小复选标记: 我如何通过管理它。不知何故,它不起作用,我不知道为什么。- 这是我的密码: <Window.Resources> <Style TargetType="MenuItem"> <Style.Triggers> <DataTrigger Binding="{Binding Duplicate}" Value="True">

我想在contextmenu中显示/隐藏menuitem标题旁边的小复选标记:

我如何通过
管理它。不知何故,它不起作用,我不知道为什么。-

这是我的密码:

<Window.Resources>
    <Style TargetType="MenuItem">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Duplicate}" Value="True">
                <Setter Property="IsChecked" Value="True"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Done}" Value="True">
                <Setter Property="IsChecked" Value="True"/>
           </DataTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

<!--....-->

<DataGrid Name="MainDataGrid" IsReadOnly="True" SelectionMode="Single">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Date" Binding="{Binding Date"></DataGridTextColumn>
        <!-- .... -->
    </DataGrid.Columns>
    <DataGrid.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Done" .../>
            <MenuItem Header="Duplicate" .../>
        </ContextMenu>
    </DataGrid.ContextMenu>
</DataGrid>


我做错了什么?

我相信您缺少了IsCheckable=“True”

您确定ContextMenu的数据上下文设置正确吗?它应该自动从DataGrid继承,但是DataContext对象应该具有
Duplicate
Done
属性。我不太确定,但我也认为它会自动继承。在调试器中运行应用程序并打开DataGrid上的上下文菜单时,您是否在Visual Studo输出窗口中看到任何绑定错误消息?@Clemens它不会中断我不是指断点,只是输出窗口中的警告消息。然后,尝试以下操作:删除您的块,并直接添加到您的样式中。您的菜单现在检查了吗?