添加4个月前的帖子,遗憾的是没有得到任何答案.
在带有shift的数据网格中使用多选时,我基本上站在同一个问题之前.
当在一个巨大的列表中间的某个地方(说它是网格中的1,000,000个项目,所有数据都已虚拟化)而我使用shift +鼠标点击从500,000到500,050中选择,网格调用我的"GetEnumerator()"方法虚拟列表(类似于Vincent和Paul的实现).到目前为止我所做的只是缓存页面上的SelectMany.但不幸的是导致行没有被正确选择(当ctrl +鼠标点击完成工作!).
所以我发现,DataGrid实际上期望从索引0到最后一个选择的所有项目.显然,这对于1m项目的列表并不理想,因为这将导致从0到(在我的示例中)500,050中的每个项目的请求,从而将所有内容加载到数据库中.
所以我的问题与丹尼尔在上面发布的那些问题相同:
为什么DataGrid多次请求项目(连续6-7次请求所选项目,没有明显原因)?
有没有办法告诉DataGrid不要使用枚举器,只是选择项目而不是从0开始迭代?
非常感谢,希望我能更好地获得至少引人深思的答案,因为没有太多关于数据虚拟化的信息.