WPF - 将键盘焦点设置为 ListView 项,就像 Tab 一样

WPF - Set Keyboard Focus to ListView Item like Tab does

我的 WPF 窗体中有一个 Listview 以及其他控件。当我在控件之间切换并且 ListView 获得焦点时,ListView 项目自动获得焦点,而不是 ListView 本身,这允许使用键盘在项目之间移动。

当用户单击 ListView 中的空白区域时,我想要相同的行为。所以我为ListView创建了一个Click事件,但是不知道要执行哪段代码。我试过了;

ListView.Focus();
Keyboard.Focus(ListView);

但是 ListView 本身总是被聚焦,我想这是有道理的。将 ListView 设置为 focusable = false 会完全禁用聚焦,包括项目和使用 tab 键聚焦也不再起作用。

如何在我的 OnClick 事件中重新创建 Tab 焦点行为?

您可以尝试关注 ListView 中的第一项:

ListView.SelectedIndex = 0;
ListViewItem lvi = ListView.ItemContainerGenerator.ContainerFromIndex(0) as ListViewItem;
if (lvi != null)
    lvi.Focus();