如何在 gridview 项目上设置焦点程序化?

How to set focus programmatic on gridview item?

我的主页有一个ListView,其中包含许多GridView(启用一行)。 现在我可以使用键盘设置焦点 left/right/up/down。但是当进入一个item时(我用一个全局变量来存储这个item),导航到另一个页面,然后导航回来,我无法设置上一个GridView item的焦点。

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.NavigationMode == NavigationMode.Back)
    {
        //Set last focus, if no focus, banner get the focus.              
        if (Globals.gridViewItemFocused == null)
            banner.Focus(FocusState.Pointer);
        else
        {
            list.UpdateLayout();

            Globals.gridViewItemFocused.Focus(FocusState.Programmatic);
            Globals.gridViewItemFocused.IsSelected = true;
            Globals.gridViewItemFocused.StartBringIntoView();
        }
    }

    base.OnNavigatedTo(e);
}

将焦点设置在 GridViewItem 类型的变量上将不起作用。您需要根据您的变量设置您的 GridView 控件的 SelectedItem 或 SelectedIndex。