我有这个XAML:
<DataGridTextColumn Binding="{Binding Vessel}" Header="Vessel" IsReadOnly="True">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem x:Name="mVesselSize" Header="Size"/>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
当我尝试向菜单添加Click处理程序时,我得到:
'mVesselSize_Click'无效。 “单击”不是“ System.Windows.Controls.DataGridTextColumn”上的事件。
我在做什么错?我认为这可能与DataGridTextColumn.CellStyle内的菜单有关(我从堆栈溢出的其他位置复制了该代码),但我不知道如何为特定数据网格单元(列)制作上下文菜单。
答案 0 :(得分:0)
似乎无法在样式设置程序中为ContextMenu设置事件处理程序
这是一种随心所欲的方式
<MenuItem x:Name="mVesselSize" Header="Size">
<MenuItem.Style>
<Style TargetType="MenuItem">
<EventSetter Event="Click" Handler="mVesselSize_Click"/>
</Style>
</MenuItem.Style>
</MenuItem>
但是肯定会有更好的解决方案