我有一个多列的GridView。我只想在特定菜单中的某个项目上单击鼠标右键时才显示ContextMenu。这是我到目前为止的内容:

<GridView>
    <GridViewColumn>
        <!-- Show context menu for this column -->
        <GridViewColumn.CellTemplate>
            <DataTemplate>
                ...
            </DataTemplate>
        </GridViewColumn.CellTemplate>
    </GridViewColumn>

    <GridViewColumn>
        <!-- Do not show context menu for this column -->
        <GridViewColumn.CellTemplate>
            <DataTemplate>
                ...
            </DataTemplate>
        </GridViewColumn.CellTemplate>
    </GridViewColumn>
</GridView>


我尝试在GridViewColumn.ContextMenu标记之间添加<GridViewColumn></GridViewColumn>,但似乎不存在。我也尝试将其添加到GridViewColumn.CellTemplateDataTemplate内,但没有任何运气。

关于如何为特定列设置ContextMenu的任何建议?

最佳答案

您应该将其添加到DataTemplate的第一个子项中(即,它必须是FrameworkElement的子项)。

<GridViewColumn>
    <!-- Show context menu for this column -->
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Grid>
                <ContextMenuService.ContextMenu>
                    <ContextMenu>
                        <MenuItem Header="Menu Item" />
                    </ContextMenu>
                </ContextMenuService.ContextMenu>
            </Grid>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

09-17 07:16