【发布时间】: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 对象应该具有
Duplicate和Done属性。 -
我不太确定,但我也认为它会自动继承。
-
在调试器中运行应用程序并打开 DataGrid 上的上下文菜单时,是否在 Visual Studo 输出窗口中看到任何绑定错误消息?
-
@Clemens 它不会中断
-
我不是指断点,只是输出窗口中的警告信息。