提高WPF DataGrid的性能
在我的.NET 3.5
WPF
应用程序中,我有一个WPF
DataGrid
,它将填充500列和50行。 在滚动时,或者当我执行DataGrid.Items.Refresh()
或选择行时,App的性能非常差。
实际应用程序将花费大约20秒来更新布局。 Layout_Updated()
事件将在20秒后触发。
如果我将列减少到50或更少,App会非常敏感。 根据我的发现,性能与列数直接相关。
如何提高DataGrid
性能?
您可以使用几个选项来帮助您使用DataGrid对象
EnableColumnVirtualization = true EnableRowVirtualization = true
这两个是我认为可能有帮助的主要因素。 接下来尝试使您的绑定异步
ItemsSource="{Binding MyStuff, IsAsync=True}"
最后,我听说设置最大高度和宽度可以帮助,即使它超过最大屏幕尺寸,但我自己没有发现差异(声称与自动尺寸测量有关)
MaxWidth="2560" MaxHeight="1600"
也永远不要将DataGrid
放在ScrollViewer
,因为你将基本上失去虚拟化。 如果这有帮助,请告诉我!
检查您是否拥有属性ScrollViewer.CanContentScroll
设置为False
。 将此属性设置为false会以某种方式禁用虚拟化,这会降低数据网格的性能。 有关更多说明,请参阅此CanContentScroll
IsAsync = True}“使用此语句后更快,应用程序在短时间内获取大量记录,它对我有用…
也许试试这个,而不是一次加载所有50行
https://www.codeproject.com/Articles/34405/WPF-Data-Virtualization
上述就是C#学习教程:提高WPF DataGrid的性能分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1009436.html