Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有数据虚拟化的ListView中的WPF定向导航_C#_Wpf_Ui Virtualization_Data Virtualization - Fatal编程技术网

C# 具有数据虚拟化的ListView中的WPF定向导航

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本身成为焦点。如果我首先通过滚动列表来确保加载

我已经根据WPF中的列表框实现了数据和UI虚拟化。简单地说,我将ListView绑定到一个集合,该集合在需要时自动将数据加载到页面。如果ListView请求页面上尚未加载的项,则集合将返回null,异步加载页面,然后发出Reset NotifyCollectionChanged事件,以便ListView获取实际值

当我尝试使用方向键在列表中导航时,这种方法可以很好地工作,直到我找到了ListView第一次收到焦点时未加载的项目。此时,ListView本身成为焦点。如果我首先通过滚动列表来确保加载所有数据(从而强制所有项目可视化并加载),则定向导航的工作方式与正常情况类似


看起来ListView以某种方式记住了最初为空的数据,并拒绝将焦点移到这些项上。这里发生了什么?如何修复此问题?

重置集合时焦点丢失。为了避免这种情况,我提出了替换通知