仅在特定GridViewColumn中单击鼠标右键时显示​​上下文菜单

时间:2012-10-04 22:25:25

标签: c# wpf xaml gridview contextmenu

我有一个包含多列的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的任何建议?c

1 个答案:

答案 0 :(得分:2)

您应该将其添加到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>