【问题标题】:Significant difference in render time depending on design pattern used渲染时间的显着差异取决于所使用的设计模式
【发布时间】:2018-09-26 17:22:17
【问题描述】:

我使用 DataGrid 创建了一个 WPF 视图作为用户控件,其中包括添加/编辑/删除记录的能力。 View 有一个附带的 ViewModel,用于管理 DataGrid 的内容。然后 ViewModel 绑定到 MainView 的 XAML 中的 TabControl 并按预期工作。 DataGrid 快速呈现超过 3100 条记录。 DataGrid 反应灵敏,允许我根据需要更改数据。

MainView 然后按照 Rachel Lim 的博客中引用的模式更改为使用 Button 和 ContentControl 呈现 ViewModel。

性能上的差异是惊人的。渲染数据大约需要 15 秒。 DataGrid 的响应能力很差。简而言之,它是不可用的。

ViewModel 中的服务调用按预期检索了记录。问题似乎出在 DataGrid 上。渲染记录很辛苦。

以前有人经历过吗?

任何帮助将不胜感激。

【问题讨论】:

  • 请提供更多细节。目前,您的问题无法回答,因为它缺少很多重要信息:提供“之前”和“之后”代码 sn-ps,显示另一个相关代码。我们需要minimal reproducible example 来帮助您。

标签: wpf data-binding


【解决方案1】:

问题解决了!两种观点之间存在细微差别。 Tab Control 版本中的数据网格使用固定的高度和宽度。 Control Control 版本没有指定 Height 或 Width ,当然会花时间确定渲染所有 3100 行所需的大小。设置高度和宽度后,内容控件版本工作得很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    相关资源
    最近更新 更多