0

根据这篇文章,我已经在 WPF 中使用 ListBox 实现了数据和 UI 虚拟化。简而言之,我将 ListView 绑定到一个集合,该集合会在需要时一次自动加载页面数据。如果 ListView 请求页面上尚未加载的项目,则集合将返回 null,异步加载页面,然后发出 Reset NotifyCollectionChanged 事件,以便 ListView 将获取实际值。

当我尝试使用方向键浏览列表时,这可以正常工作,直到我点击 ListView 第一次获得焦点时未加载的项目。此时,ListView 本身成为焦点。如果我确保通过滚动列表开始加载所有数据(从而强制显示所有项目并因此加载),则定向导航正常工作。

看起来 ListView 以某种方式记住了最初为空的数据并拒绝将焦点移到这些项目上。这里发生了什么?我怎样才能解决这个问题?

4

1 回答 1

0

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

于 2014-05-28T08:34:55.320 回答