如何将处理程序添加到WPF DataGridCell ContextMenu

时间:2018-09-19 01:44:18

标签: wpf datagrid contextmenu

我有这个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内的菜单有关(我从堆栈溢出的其他位置复制了该代码),但我不知道如何为特定数据网格单元(列)制作上下文菜单。

1 个答案:

答案 0 :(得分:0)

似乎无法在样式设置程序中为ContextMenu设置事件处理程序

这是一种随心所欲的方式

<MenuItem x:Name="mVesselSize" Header="Size">
    <MenuItem.Style>
        <Style TargetType="MenuItem">
           <EventSetter Event="Click" Handler="mVesselSize_Click"/>
        </Style>
    </MenuItem.Style>
 </MenuItem>

但是肯定会有更好的解决方案

相关问题