【发布时间】:2018-01-06 00:13:19
【问题描述】:
我有一个Datagrid 和一个DataGridTemplateColumn,其中有一个TextBox。当焦点在文本框中并且我按 Enter 键转到下一条记录时,它专注于 DataGridTemplateColumn 而不是子文本框,迫使我按 Tab 进入文本框。我发现这段代码可以在列中使用选项卡,效果非常好,但是当我按 Enter 时,我无法获得相同的功能。
<Style x:Key="columnTabStop" TargetType="{x:Type DataGridCell}">
<Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="KeyboardNavigation.IsTabStop" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
这是我的DataGridTemplateColumn 代码:
<DataGridTemplateColumn Header="Weld Time" CellStyle="{StaticResource columnTabStop}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding DataContext.WeldTime,RelativeSource={RelativeSource AncestorType=DataGridRow}}"
BorderThickness="0" BorderBrush="Transparent" Background="BlanchedAlmond" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
我已尝试禁用 Focusable 和 IsHitTestVisible,但这些不是我需要的。我也玩过其他几个KeyboardNavigation 设置,但还没有让它工作。必须有一种方法来实现这一点,但我没有找到它的运气。基本上我想完全绕过DataGridTemplateColumn,只允许关注子控件。这可能吗?
【问题讨论】: