设置了listview在窗体中的tabindex后确实能tab到,但是点击头部全选按钮之后tab就进不去了,
后来listview自定义控件istabstop和facusable设为true后tab能命中listview,但是tab进item时listview会重新把第一项选中,且tab顺序把listview也加进去了,为了直接tab到第一项。在listview自定义控件中加了GotFocus=“ListView_GotFocus”,获取到焦点的时候直接把焦点给下一个(这个时候会出现一个问题,listviewitem被focus的时候里面的复选框会变为选中状态,所以需要后面的处理),并记录下当前listview选中的信息,然后再把数据重新绑回去
private List<item> listItem = new List<item>();
private bool tabFlag = false;
private void ListView_GotFocus(object sender, RoutedEventArgs e)
{
if (ListView.IsFocused && ListView.Items.Count > 0)
{
if ((DataContext is itemViewModel viewModel))
{
listItem = viewModel.SelectedItems as List<item>;
}
tabFlag = true;