在WPF DataGrid行中禁用焦点

时间:2011-10-08 10:46:02

标签: c# wpf datagrid

我有一个C#WPF DataGrid 。在管理员模式下,用户可以在DataGrid中高行并选择行,并按下“D”以使用PreviewKeyDown将其删除。在操作员模式下,此功能将被禁用,用户只能滚动和读取滚动但不能高行或选择要删除的行。

enter image description here

我可以将行设置为高行并删除。但我不知道如何禁用此功能。 我试过了:

  • IsReadOnly = false呈现DataGrid不可滚动
  • Focusable = false用户仍然可以高行并选择行
  • IsHitTestVisible = false仍然可见..

如何?

1 个答案:

答案 0 :(得分:4)

您可以通过在DataGrid上设置IsEnabled="False",同时保持排序,滚动等,从而禁用DataGridRow中的选择。

这具有副作用,即大多数元素都会显示“灰显”/禁用外观,但TextBlocks不是这种情况。

<DataGrid ...>
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Setter Property="IsEnabled" Value="False"/>
        </Style>
    </DataGrid.RowStyle>
    <!-- ... -->
</DataGrid>