我可以使WPF DataGridRow不可选择吗?

我可以使WPF DataGridRow不可选择吗?,wpf,datagrid,triggers,styles,Wpf,Datagrid,Triggers,Styles,我的datagrid上有一个基于属性绑定禁用DataGridRow的样式。这使得行不可选择,这就是我想要的。但是,我仍然能够使用至少两种其他方式选择禁用的行。第一种情况是,如果我在围绕禁用行的两个启用行之间使用拖动运动。第二个是单击datagrid左上角的“全选”按钮。有没有办法使特定行完全不可选择 这就是我目前拥有的: <DataGrid.RowStyle> <Style TargetType="{x:Type DataGridRow}">

我的datagrid上有一个基于属性绑定禁用DataGridRow的样式。这使得行不可选择,这就是我想要的。但是,我仍然能够使用至少两种其他方式选择禁用的行。第一种情况是,如果我在围绕禁用行的两个启用行之间使用拖动运动。第二个是单击datagrid左上角的“全选”按钮。有没有办法使特定行完全不可选择

这就是我目前拥有的:

  <DataGrid.RowStyle>
      <Style TargetType="{x:Type DataGridRow}">
          <Style.Triggers>
              <DataTrigger Binding="{Binding DisableMe}" Value="True">
                  <Setter Property="IsEnabled" Value="False" />
              </DataTrigger>
          </Style.Triggers>
      </Style>
  </DataGrid.RowStyle>

如何使用SelectionChanged事件撤消选择?我真的不认为有一个简单的方法,无论如何


您还可以更改行样式,使其显示为未选中状态(即使已选中),并通过代码将其筛选出所选内容…

我刚刚偶然发现此线程存在相同的问题,我想指出,您可以简单地将enabled设置为false。

我不认为有任何正确的解决方案。但作为一种解决方法,您可以将DataGrid的“IshitteVisible”属性绑定到“IsEnabled”

<DataGrid.RowStyle>
 <Style TargetType="{x:Type DataGridRow}">
    <Setter Property="IsEnabled" Value="True" />
    <Setter Property="IsHitTestVisible" Value="{Binding RelativeSource={RelativeSource   Self},Path=IsEnabled}"/>
          <Style.Triggers>
              <DataTrigger Binding="{Binding DisableMe}" Value="True">
                  <Setter Property="IsEnabled" Value="False" />
              </DataTrigger>
          </Style.Triggers>
      </Style>
    </DataGrid.RowStyle>