我今天早上研究了如何修改RadGridView(在WPF中)的行为,以便将焦点从一个控件移动到下一个控件,就像Tab键一样...和许多其他示例我一样#&# 39;我看过,我想做同样的事情:只需输入(或返回)键即可模仿Tab键。但我的代码无效。
如果我在XAML中有以下代码:
<telerik:GridViewDataColumn Name="MyColumn" CellStyleSelector="{DynamicResource MyColorStyle}" Width="64">
<telerik:GridViewDataColumn.Header>
<TextBlock Text="My Column" TextAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" />
</telerik:GridViewDataColumn.Header>
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyNumber}" TextAlignment="Right"></TextBlock>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
<telerik:GridViewColumn.CellEditTemplate>
<DataTemplate>
<TextBox Name="MyNumberTextBox" Text="{Binding MyNumber, Mode=TwoWay}" IsTabStop="True" TabIndex="27" PreviewKeyDown="MyNumberTextBox_PreviewKeyDown" MaxLength="10" HorizontalAlignment="Stretch" VerticalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" />
</DataTemplate>
</telerik:GridViewColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
我在代码隐藏中使用了这段代码:
private void MyNumberTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if ((e.Key == Key.Enter) || (e.Key == Key.Return))
{
e.Handled = true;
(sender as TextBox).MoveFocus(new TraversalRequest(System.Windows.Input.FocusNavigationDirection.Next));
}
}
焦点不会前进到RadGridView行右侧的下一列;它反过来回到屏幕的顶部(到下拉菜单控件)。我为我的列中的每个文本框明确设置了TabStop。
可以在这里使用一些帮助来确定我做得不好,或者我可能缺少什么。在此先感谢您的帮助。