我有这个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'无效。 'Click'不是'System.Windows.Controls.DataGridTextColumn'上的事件。
我究竟做错了什么?我认为它可能与DataGridTextColumn.CellStyle中的菜单有关(我从堆栈溢出的其他地方复制了该代码)但我不知道如何为特定数据网格单元(列)创建上下文菜单。
似乎无法在ContextMenu的样式设置器中设置事件处理程序
这是一种遵循你的想法的hacky方式
<MenuItem x:Name="mVesselSize" Header="Size">
<MenuItem.Style>
<Style TargetType="MenuItem">
<EventSetter Event="Click" Handler="mVesselSize_Click"/>
</Style>
</MenuItem.Style>
</MenuItem>
但肯定会有更好的解决方案