防止选择WPF DataGrid中的禁用行

时间:2016-07-26 16:30:47

标签: c# wpf datagrid

我有一个DataGrid,根据网格中项目的属性禁用某些行...

<DataGrid ItemsSource="{Binding Items}">
  <DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
      <Style.Triggers>
        <DataTrigger Binding="{Binding Enabled}" Value="False">
          <Setter Property="IsEnabled" Value="False" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </DataGrid.RowStyle>
</DataGrid>

我想阻止选择禁用的行。在上面的示例中,您无法通过单击选择已禁用的行,但还有其他方法可以选择它们,例如,Ctrl-A选择所有行(包括已禁用的行),选择已启用的行,然后按住Shift键单击另一个已启用的行还会选择它们之间的任何禁用行等...

有没有办法防止被禁用的行被选中? (例如,Ctrl-A只会选择启用行)

1 个答案:

答案 0 :(得分:1)

您必须处理SelectedCellsChanged的{​​{1}}事件。在下面的示例中,我使用了具有DataGrid属性的Student对象列表。

Enabled

我已经检查了它,它解决了你问题中提到的所有问题。