C# 具有数据虚拟化的ListView中的WPF定向导航
我已经根据WPF中的列表框实现了数据和UI虚拟化。简单地说,我将ListView绑定到一个集合,该集合在需要时自动将数据加载到页面。如果ListView请求页面上尚未加载的项,则集合将返回null,异步加载页面,然后发出Reset NotifyCollectionChanged事件,以便ListView获取实际值 当我尝试使用方向键在列表中导航时,这种方法可以很好地工作,直到我找到了ListView第一次收到焦点时未加载的项目。此时,ListView本身成为焦点。如果我首先通过滚动列表来确保加载所有数据(从而强制所有项目可视化并加载),则定向导航的工作方式与正常情况类似C# 具有数据虚拟化的ListView中的WPF定向导航,c#,wpf,ui-virtualization,data-virtualization,C#,Wpf,Ui Virtualization,Data Virtualization,我已经根据WPF中的列表框实现了数据和UI虚拟化。简单地说,我将ListView绑定到一个集合,该集合在需要时自动将数据加载到页面。如果ListView请求页面上尚未加载的项,则集合将返回null,异步加载页面,然后发出Reset NotifyCollectionChanged事件,以便ListView获取实际值 当我尝试使用方向键在列表中导航时,这种方法可以很好地工作,直到我找到了ListView第一次收到焦点时未加载的项目。此时,ListView本身成为焦点。如果我首先通过滚动列表来确保加载
看起来ListView以某种方式记住了最初为空的数据,并拒绝将焦点移到这些项上。这里发生了什么?如何修复此问题?重置集合时焦点丢失。为了避免这种情况,我提出了替换通知