如何在 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。
我的主页有一个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。