C# 如何仅在WPF DataGridRow上显示ContextMenu

C# 如何仅在WPF DataGridRow上显示ContextMenu,c#,wpf,datagrid,C#,Wpf,Datagrid,我当前有一段代码,右键单击时显示上下文菜单。然而,我的问题源于这样一个事实:右键单击DataGrid上的任意位置时,菜单会弹出,而不仅仅是行。有没有办法防止这种情况发生?i、 例如,只有在右键单击行时,才会弹出上下文菜单 //C# //XAML <DataGrid x:Name="dgCash" HorizontalAlignment="Left" Margin="5,0,5,5" Grid.RowSpan="1" AutoGenerateColumns="

我当前有一段代码,右键单击时显示
上下文菜单
。然而,我的问题源于这样一个事实:右键单击
DataGrid
上的任意位置时,菜单会弹出,而不仅仅是行。有没有办法防止这种情况发生?i、 例如,只有在右键单击行时,才会弹出
上下文菜单

//C#

//XAML

                <DataGrid x:Name="dgCash" HorizontalAlignment="Left" Margin="5,0,5,5" Grid.RowSpan="1" AutoGenerateColumns="False" IsReadOnly="True"
              HorizontalContentAlignment="Right">
                    <DataGrid.Columns>
                        <DataGridTextColumn Binding="{Binding denomination}" Header="Denomination"/>
                        <DataGridTextColumn Binding="{Binding start}" Header="Starting"/>
                        <DataGridTextColumn Binding="{Binding end}" Header="End of day"/>
                        <DataGridTextColumn Binding="{Binding deposit}" Header="Deposit" Width="*"/>
                    </DataGrid.Columns>
                    <DataGrid.ContextMenu>
                        <ContextMenu>
                            <MenuItem Header="Update Bill" Click="updateBill" />
                        </ContextMenu>
                    </DataGrid.ContextMenu>
                </DataGrid>


Hi可能重复!我试过了,它确实起了作用,但它也引入了一个bug,当选中它时,它最终隐藏了整行。我不知道为什么,但也许这与我使用的主题有关?我现在运行的是
MetroWindow
@Dilisqq你是对的。。对我来说,在右键单击datagridrow之后,它的内容消失了,但是该行在那里,只是一个空行。。。你知道为什么吗?可能是Hi的复制品!我试过了,它确实起了作用,但它也引入了一个bug,当选中它时,它最终隐藏了整行。我不知道为什么,但也许这与我使用的主题有关?我现在运行的是
MetroWindow
@Dilisqq你是对的。。对我来说,在右键单击datagridrow之后,它的内容消失了,但是该行在那里,只是一个空行。。。你知道为什么吗?
                <DataGrid x:Name="dgCash" HorizontalAlignment="Left" Margin="5,0,5,5" Grid.RowSpan="1" AutoGenerateColumns="False" IsReadOnly="True"
              HorizontalContentAlignment="Right">
                    <DataGrid.Columns>
                        <DataGridTextColumn Binding="{Binding denomination}" Header="Denomination"/>
                        <DataGridTextColumn Binding="{Binding start}" Header="Starting"/>
                        <DataGridTextColumn Binding="{Binding end}" Header="End of day"/>
                        <DataGridTextColumn Binding="{Binding deposit}" Header="Deposit" Width="*"/>
                    </DataGrid.Columns>
                    <DataGrid.ContextMenu>
                        <ContextMenu>
                            <MenuItem Header="Update Bill" Click="updateBill" />
                        </ContextMenu>
                    </DataGrid.ContextMenu>
                </DataGrid>