如何通过ListView中的TextBox来选择TAB

好吧我有一个ListView有2个GridViewColumns,一个显示一个数字,一个包含TextBox我的问题是我希望能够通过GridViewColumn中的所有TextBox来Tab。 随着附加的Property KeyboardNavigation.TabNavigation我几乎实现了我想要的。
我所取得的成就是:
第一个TAB – 整个第一个ListViewItem集中
第二个TAB – 第一个TextBox聚焦
第三个TAB – 整个第二个ListViewItem集中
第四个TAB – 第二个TextBox重点

我想要的是
第一个TAB – 第一个TextBox聚焦
第二个TAB – 第二个TextBox聚焦

                 

这段代码由HB提供给我。 它应该在选择ListViewÍtem时执行,并找到TextBox并对其进行聚焦。 不知怎的,每次执行此方法时它仍然不会选择TextBox bool TextBoxgotFocus始终为true。

  private void ItemSelected(object sender, RoutedEventArgs e) { var item = sender as ListViewItem; TextBox h = (FindNamedChild(item, "SelectorTextBox") as TextBox); bool TextBoxgotFocus = h.Focus(); } public static object FindNamedChild(DependencyObject container, string name) { if (container is FrameworkElement) { if ((container as FrameworkElement).Name == name) return container; } var ccount = VisualTreeHelper.GetChildrenCount(container); for (int i = 0; i < ccount; i++) { var child = VisualTreeHelper.GetChild(container, i); var target = FindNamedChild(child, name); if (target != null) { return target; } } return null; } 

问题是,对于列表视图中的每个项目,您有两个制表位:项目本身和文本框。 您希望将KeyboardNavigation.IsTabStop设置为false以表示项目本身。 只需在项目样式中设置即可。