1

我在单元格中放置了一些文本框,我真正需要的是,当我按下向下箭头或向上箭头键时,下一行中的下一个文本框或控件应该得到关注

        <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);
    }

真的需要你的帮助,谢谢!

4

0 回答 0