【发布时间】:2022-01-15 02:12:58
【问题描述】:
我有一个带有数据网格的页面 --> 下面的 xaml 代码:
<DataGrid x:Name="DataGrid"
IsReadOnly="True"
AutoGenerateColumns="False"
SelectionUnit="FullRow"
BorderBrush="{x:Null}"
HorizontalContentAlignment="Stretch"
ColumnWidth="Auto" Focusable="False"
MouseDoubleClick="DataGridArticoli_MouseDoubleClick"
GridLinesVisibility="None"
HeadersVisibility="Column"
UseLayoutRounding="False"
SelectionChanged="DataGrid_SelectionChanged">
<!--Columns-->
<DataGrid.Columns>
<DataGridTextColumn col_1/>
<DataGridTextColumn col_2/>
<DataGridTextColumn col_3/>
<DataGridTextColumn col_4/>
<DataGridTextColumn col_5/>
<DataGridTextColumn col_6/>
<DataGridTextColumn col_7/>
<DataGridTextColumn col_8/>
<DataGridTextColumn col_9/>
<DataGridTextColumn col_10/>
</DataGrid.Columns>
<DataGrid.ContextMenu>
<ContextMenu x:Name="ContextMenu">
<MenuItem Header="Remove" Click="Remove_ContextMenuClick">
<MenuItem.Icon>
<Image Source="/resources/delete.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="btnOpen" Header="Open" Click="Open_ContextMenuClick" IsEnabled="False">
<MenuItem.Icon>
<Image Source="/resources/open.png"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
在这种情况下,上下文菜单出现在鼠标的每个位置(右键单击时)。我只想在所选行中显示上下文菜单,并且仅当鼠标指针位于所选行上时。我尝试了不同的解决方案,但我没有找到合适的解决方案。有人可以帮我提供一些示例代码吗?
【问题讨论】:
标签: c# wpf datagrid contextmenu datagridrow