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

我有一个包含很多列的数据网格。现在通常用户可以按 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,焦点将转到下面的单元格,但不会跳过该单元格并转到单元格内容。而是突出显示单元格。像这样:

http://img1.mukewang.com/60e0113b0001a7ef03560246.jpg

尚方宝剑之说
浏览 420回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP