如何强制数据网格中控件的可视化
我有包含大量 DataGridTemplateColumn 列的数据网格。当我移动滚动条时,它会在控件变得可见时创建将数据加载到控件的请求。这会显着减慢界面速度。是否可以禁用此功能,以便所有控件都在构造函数中传播(就像在旧的 winform 应用程序中一样)?
I have datagrid that contains plenty of DataGridTemplateColumn columns. When I move the scrollbar it creates requests to load data to the controls as they become visible. This slows down the interface significantly. Is it possible to disable this feature so all controls are propagated in the constructor (like in good old winform applications)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以探索许多选项来提高此性能...
当数据网格模板列单元格变得可见时触发的数据获取代码可以在另一个线程上完成,然后应将通知分派到 UI 线程。
一个快速解决方案可能是使用延迟滚动。
另一种方法是使用 DataGridTemplateColumn.CellTemplate 和 CellEditTemplate,其中 CellTemplate 可以是简单的轻量级视图,而 CellEditTemplate 可以容纳复杂的视图(这会进行大量的数据获取调用)在其编辑模式下。
这些有帮助吗?
There are many options you can explore to improve this performance...
The data fetching code that gets fired when data grid template column cells become visible, can be done on another thread and then the notifications should be dispatched to the UI thread.
A quick fix could be to use deferred scrolling.
One more way could be to use
DataGridTemplateColumn.CellTemplate
andCellEditTemplate
, where CellTemplate can be a simple lightweight view and CellEditTemplate to hold the complex view (that makes heavy data fetching calls) in its edit mode.Do any of these help?