为了账号安全,请及时绑定邮箱和手机立即绑定

按 Enter 时,WPF DataGrid 似乎忽略 IsTabStop 设置

按 Enter 时,WPF DataGrid 似乎忽略 IsTabStop 设置

C#
尚方宝剑之说 2021-06-27 10:01:20
我有一个包含很多列的数据网格。现在通常用户可以按 TAB 在 DataGrid 单元格中的控件之间循环。数据网格单元格已设置为 IsTabStop = false,因此它会跳过对单元格本身的关注,并且在将焦点分配给实际控件之前它只会失败。如果用户按 Enter 键,这似乎不起作用,因为他们想在同一列中工作。DataGrid 会将焦点传递到 COLUMN 中的下一个单元格,但它也会忽略 IsTabStop 设置,因此它只会将焦点放在单元格本身而不是内部控件上。任何想法如何解决这一问题。简短示例<DataGrid AutoGenerateColumns="False" Name="grid1" >    <DataGrid.Resources>        <Style TargetType="{x:Type Border}" x:Key="coloredBorder">            <Setter Property="Background" Value="Yellow"/>        </Style>        <Style TargetType="DataGridCell">            <Setter Property="IsTabStop" Value="False"/>        </Style>    </DataGrid.Resources>    <DataGrid.Columns>        <DataGridTextColumn Binding="{Binding A, Mode=OneWay}" Header="A"/>        <DataGridTemplateColumn Header="B">            <DataGridTemplateColumn.CellStyle>                <Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">                    <Setter Property="Template">            </DataGridTemplateColumn.CellStyle>        </DataGridTemplateColumn>    </DataGrid.Columns></DataGrid>此外,我在此处附加了示例 WPF 应用程序。要重现,请单击组合框之一以使其成为焦点。按选项卡,您将看到下一个组合框正常获得焦点。如果我添加了多个组合框列,右侧的组合框将获得焦点。但是,如果您按 Enter,焦点将转到下面的单元格,但不会跳过该单元格并转到单元格内容。而是突出显示单元格。像这样:
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 416 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信