繁体   English   中英

WPF ListView键盘导航问题

[英]WPF ListView Keyboard Navigation Problem

我有这样的列表视图

列表显示:
————-----

  • 芒果
  • 橙子
  • 葡萄
  • 葡萄
  • 葡萄
  • 苹果
  • 草莓

每当我使用向下箭头导航时,BlueHighlight会在第一个葡萄停顿,一个虚线矩形从第二个葡萄开始,停在第三个葡萄,然后BlueHighlight从Apple恢复。 这看起来很奇怪,并且当导航向上时,它变得更加奇怪。 它从苹果跳到橘子或芒果。

这是由于虚拟化吗?
似乎只有重复的数据(葡萄)在造成问题。 有帮助吗?

虚线矩形是您的键盘焦点。 蓝色矩形是您的选择。

当您向下移动键盘时,焦点将跟踪您所在的位置。 但是,该选择会跟踪选择了哪个项目。 当同一项目多次出现在列表中时,选择矩形只能显示在其中之一上。

为了使此工作按您期望的方式进行,请将您的项目包装在ObservableCollection中。 所以代替:

coll.Add(fruit);

你会写

coll.Add(new FruitWrapper(fruit));

ListBox您的ItemTemplate可以包含一个ContentPresenter ,用于在包装器中显示水果(例如<ContentPresenter Content="{Binding Fruit}" /> )。

将蓝色突出显示视为选定的数据项。 Grapes是重复的,因此数据选择不会更改。

虚线矩形是键盘焦点,它只关心表示数据项的ListViewItem

因此,有一个由3个ListViewItem对象表示的Grapes对象。

您在ObservableCollection 3次相同的“ Grapes”对象,我的意思是该对象具有相同的引用。 而Listbox对此一团糟。 每个元素都应该是一个不重要的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM