我将DataGrid绑定到动态DataSet(db表查找数据)
这在大多数情况下都可以正常工作,当列存储大型信息集时接受。一个这样的例子是XML类型列,它存储相当大的XML配置数据片段。
在这种情况下,即使列宽/高度被限制为仅显示该单元格中数据的前300个字符,网格也会减慢为爬行速度。
所以看起来网格渲染单元格中的所有数据而不仅仅是可见部分。
有没有办法将DataGrid配置为只以通用方式呈现此类单元格的子部分(因为我无法预测哪些列需要这个)?
答案 0 :(得分:1)
它可能是无关的但是我在DataGrid中遇到了各种各样的问题,在窗口调整大小,列排序等之后花了几秒钟来刷新它并在它执行时锁定了窗口UI(1000行, 5列)。
使用WPF大小计算得出问题(bug?)。我在RowDefinition Height =“Auto”的网格中得到它,这导致渲染系统尝试通过测量每个列和行的大小来尝试重新计算DataGrid的大小,可能是通过填充整个网格(据我所知)。它应该以某种方式智能地处理它,但在这种情况下它不是。
快速检查以确定这是否是一个相关问题是在测试期间将DataGrid的高度和宽度属性设置为固定大小,然后再次尝试运行。如果您的性能已恢复,则可以在以下选项中进行永久性修复:
答案 1 :(得分:0)
尝试将您的单元格内容包装在ScrollViewer中或启用虚拟化但已禁用滚动条的内容。
另一种方法是只返回数据源的前300个字符