C# WPF DataGrid,文本框在按下向下箭头键时无法获得焦点
我在单元格中放置了一些文本框 我真正需要的是,当我按下向下箭头或向上箭头键时,下一行中的下一个文本框或控件应该能够聚焦C# WPF DataGrid,文本框在按下向下箭头键时无法获得焦点,c#,wpf,datagrid,textbox,C#,Wpf,Datagrid,Textbox,我在单元格中放置了一些文本框 我真正需要的是,当我按下向下箭头或向上箭头键时,下一行中的下一个文本框或控件应该能够聚焦 <owpfc:FFDataGrid ItemsSource="{Binding Path=Ss}" AutoGenerateColumns="False" SelectionUnit="FullRow"> <i:Interaction.Triggers> <i:EventTri
<owpfc:FFDataGrid ItemsSource="{Binding Path=Ss}" AutoGenerateColumns="False" SelectionUnit="FullRow">
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewKeyDown">
<mvvmlightextra:EventToCommand Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl, AncestorLevel=1}, Path=DataContext.CmdDownKeyDown}" PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
<wpftk:DataGrid.Columns>
<wpftk:DataGridTemplateColumn Header="Name" IsReadOnly="False">
<wpftk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=Ts1}" x:Name="txtName" />
</DataTemplate>
</wpftk:DataGridTemplateColumn.CellTemplate>
</wpftk:DataGridTemplateColumn>
<wpftk:DataGridTextColumn Binding="{Binding Path=Ts2}" Header="Ts2" IsReadOnly="False"/>
</wpftk:DataGrid.Columns>
</owpfc:FFDataGrid>
之后我试着
protected override void OnPreviewKeyDown(System.Windows.Input.KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Down)
{
if (SelectedIndex < Items.Count)
{
SelectedIndex++;
DataGridCell cell = GetCell(SelectedIndex, 0);
var currentFirstControl = (FrameworkElement)cell.Content;
currentFirstControl.Focus();
}
}
else if (e.Key == System.Windows.Input.Key.Up)
{
if (SelectedIndex > 0)
{
SelectedIndex--;
DataGridCell cell = GetCell(SelectedIndex, 1);
var currentFirstControl = (FrameworkElement) cell.Content;
currentFirstControl.Focus();
}
}
base.OnPreviewKeyDown(e);
}
受保护的覆盖void OnPreviewKeyDown(System.Windows.Input.KeyEventArgs e)
{
if(e.Key==System.Windows.Input.Key.Down)
{
if(SelectedIndex0)
{
选择索引--;
DataGridCell=GetCell(SelectedIndex,1);
var currentFirstControl=(FrameworkElement)cell.Content;
currentFirstControl.Focus();
}
}
基于预览的向下(e);
}
真的需要你的帮助,谢谢