1

我的布局:
在此处输入图像描述

外部作品的虚拟化,ListBox但内部作品DataGrid没有。可能是因为外部ListBox包含ScrollViewer内部:

提供了一个关于ScrollViewer其子内容的窗口。问题是子内容被赋予了无限的虚拟空间。在这个虚拟空间中,DataGrid它以全尺寸呈现自身,并显示其所有子项。

看起来没有简单的解决方案。
但我什至想要一个解决方法。也许以某种方式限制外部的虚拟ScrollViewer空间?

4

2 回答 2

2

我不确定 ScrollViewer 是第一个受到指责的人。ListBox 使用具有垂直方向的 StackPanel 作为 ItemsPanel。垂直 StackPanel 不限制子元素的高度。

而不是更改容器空间,而是通过设置限制 DataGrid 大小DataGrid.MaxHeight,并且 StackPanel 不会给它比该限制更多的高度。然后 ScrollViewer 将被限制为所有 DataGrid 的总大小。

于 2019-10-27T11:36:31.707 回答
0

刚刚在DataGrid 虚拟化中的 DataGrid 中找到了类似的答案

你可以尝试修复height内部的datagrid。这样,只有其中一部分会在启用滚动的情况下显示。这将允许内部虚拟化,datagrid因为一次只渲染一部分,其余部分将在滚动期间动态渲染,这将提高datagrid's加载速度。

如果有帮助,请通过上面的链接并支持他的回答

于 2019-10-27T12:08:08.900 回答