我有一个多列的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.CellTemplate
和DataTemplate
内,但没有任何运气。关于如何为特定列设置
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>