Wpf 键不能与DataGrid上的绑定SelectedItem一起使用

Wpf 键不能与DataGrid上的绑定SelectedItem一起使用,wpf,mvvm,wpfdatagrid,Wpf,Mvvm,Wpfdatagrid,当最初显示我的DataGrid时,我在使用箭头键进行DataGrid导航时遇到问题。向上/向下键不会更改当前行。只有在我点击一行后,按键才会开始工作。与焦点有关,但我不知道如何以编程方式设置焦点 class MainViewModel:ModelBase { 私有只读ObservableCollection任务=新ObservableCollection(); 公共主视图模型() :base() { this.Tasks.Add(新任务模型(“task0”); this.Tasks.Add(

当最初显示我的DataGrid时,我在使用箭头键进行DataGrid导航时遇到问题。向上/向下键不会更改当前行。只有在我点击一行后,按键才会开始工作。与焦点有关,但我不知道如何以编程方式设置焦点


class MainViewModel:ModelBase
{
私有只读ObservableCollection任务=新ObservableCollection();
公共主视图模型()
:base()
{
this.Tasks.Add(新任务模型(“task0”);
this.Tasks.Add(新任务模型(“task1”);
this.Tasks.Add(新TaskModel(“task2”));
this.SelectedTask=this.Tasks[0];
}
公共任务模型SelectedTask{get;set;} 公共可观察收集任务 { 获取{返回this.tasks;} } }
您也可以这样做:

<DataGrid PreviewKeyDown="DataGrid_PreviewKeyDown"

回答我自己关于如何设置初始焦点的问题:

我也有同样的问题,但不幸的是,这个解决方案没有起作用。事件未在数据绑定的排序数据网格中执行。。。
<DataGrid PreviewKeyDown="DataGrid_PreviewKeyDown"
private void DataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
    DataGrid grid = sender as DataGrid;
    ICollectionView view = CollectionViewSource.GetDefaultView(grid.ItemsSource);

    switch (e.Key)
    {
        case Key.Up:
            view.MoveCurrentToPrevious();
            e.Handled = true;
            break;
        case Key.Down:
            view.MoveCurrentToNext();
            e.Handled = true;
            break;
    }
}