【问题标题】:WPF/XAML Style TargetType="MenuItem" not workingWPF/XAML 样式 TargetType="MenuItem" 不起作用
【发布时间】:2015-04-12 00:14:18
【问题描述】:

我想在上下文菜单中显示/隐藏菜单项标题旁边的小复选标记:

我如何通过<Style TargetType="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>

我做错了什么?

【问题讨论】:

  • 您确定ContextMenu的DataContext设置正确吗?它应该自动从 DataGrid 继承,但 DataContext 对象应该具有DuplicateDone 属性。
  • 我不太确定,但我也认为它会自动继承。
  • 在调试器中运行应用程序并打开 DataGrid 上的上下文菜单时,是否在 Visual Studo 输出窗口中看到任何绑定错误消息?
  • @Clemens 它不会中断
  • 我不是指断点,只是输出窗口中的警告信息。

标签: c# wpf xaml


【解决方案1】:

我相信你错过了 IsCheckable="True"&lt;MenuItem Header="Done" IsCheckable="True" .../&gt;

【讨论】:

  • 好吧,试试这个:删除你的 块,并直接在你的 Style 中添加 。您的 MenuItems 现在检查了吗?
猜你喜欢
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
相关资源
最近更新 更多