如果单击行列 header,WPF Radgridview 禁用上下文菜单

WPF Radgridview disable context menu if row column header clicked

如果 radgridview 没有行,我需要禁用上下文菜单。目前,如果没有行,我可以 right-click 网格上的任何位置,上下文菜单将显示。

我尝试了下面的代码,但在尝试设置可见性时遇到 NullReferenceException,无论计数是否为零。

            dgChosenItems.DataContext = theLines.allLines

            If theLines.allLines.Count = 0 Then
                dgChosenItems.ContextMenu.Visibility = Visibility.Collapsed
            Else
                dgChosenItems.ContextMenu.Visibility = Visibility.Visible
            End If

感谢您的帮助或建议。

编辑: 这是 xaml 的一个片段。我还需要补充什么吗?

            <telerik:RadGridView x:Name="dgChosenItems" FontSize="16" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible" ItemsSource="{Binding}" AutoGenerateColumns="False" ShowGroupPanel="False" ColumnWidth="*" Margin="0,478,10,0" >
            <telerik:RadContextMenu.ContextMenu >
                <telerik:RadContextMenu Background="LightGray" Opened="dgChosenItemsContextMenu_Opened"  >
                    <telerik:RadContextMenu.Items>
                        <telerik:RadMenuItem x:Name="menuAdd" Header="Add Mod" Click="AddMod" >

我为上下文菜单命名,并根据网格中的行数将其设置为可见或不可见。到目前为止,它提供了所需的功能。如果有更好的方法,请指教

    Private Sub dgChosenItems_PreviewMouseRightButtonDown(sender As Object, e As MouseButtonEventArgs) Handles dgChosenItems.PreviewMouseRightButtonDown

         Dim theLines As New allOrderDetailLines

         If theLines.allLines.Count = 0 Then
             mnuChosenItems.Visibility = Visibility.Collapsed
         Else
             mnuChosenItems.Visibility = Visibility.Visible
         End If