C# 仅在特定GridViewColumn中单击鼠标右键时显示关联菜单
我有一个多栏的GridView。我只想在右键单击特定菜单中的项目时显示ContextMenu。以下是我目前掌握的情况:C# 仅在特定GridViewColumn中单击鼠标右键时显示关联菜单,c#,wpf,xaml,gridview,contextmenu,C#,Wpf,Xaml,Gridview,Contextmenu,我有一个多栏的GridView。我只想在右键单击特定菜单中的项目时显示ContextMenu。以下是我目前掌握的情况: <GridView> <GridViewColumn> <!-- Show context menu for this column --> <GridViewColumn.CellTemplate> <DataTemplate>
<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.CellTemplate
和DataTemplate
中,但没有任何运气
关于如何为特定列创建
上下文菜单的任何建议?c您应该将其添加到数据模板的第一个子元素中(即,它需要是框架元素的子元素
)
谢谢——这很有效。我需要将DataTemplate
中的所有内容包装在Grid
标记中,还忘记了ContextMenuService.ContextMenu
标记您还可以使用DockPanel
或StackPanel
而不是网格
,只要它派生自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>