【问题标题】:Databinding & performances : is the cost of a databinding high?数据绑定和性能:数据绑定的成本高吗?
【发布时间】:2011-08-20 07:48:01
【问题描述】:

我正在设计一个非常简单的 C# WPF 应用程序,遵循 MVVM 模式,ListView 显示大约 10 个项目(绑定到包含应用程序详细信息的对象)和 Checkbox,允许用户选择一些应用程序,然后点击“启动”按钮。

此应用程序针对公司(一家投资银行)的特定用户,他们总是推出大量极其繁重的应用程序(实时财务软件,例如Bloomberg)。 p>

虽然我的应用程序在我的 PC 和 IT 团队成员的 PC 上非常流畅,但我开始将应用程序部署到最终用户并遇到了一种糟糕的情况:一键式,真的,只有一个,在一个项目上,大约需要 2 秒来激活 CheckBox

他们已经在使用一个基本的 Winforms 应用程序,这种应用程序非常流畅。

因此我问自己一个问题,根据DataBinding 是 MVVM 的核心这一事实,这似乎很愚蠢,但是 DataBinding 是否意味着比 EventListeners 更高的成本?

谢谢!

【问题讨论】:

  • WPF(无数据绑定)在这些 PC 上的性能如何?这可能是图形或(缺少)内存问题。
  • 没有。什么,你期待不同的东西?他们还有其他问题。 Vidya 驱动程序、其他应用程序等。
  • 我有几十个数据绑定场景的表单,而且它很成功。我在 Silverlight/WPF 中遇到的一些问题是在动画中,但这通常是由于糟糕的 VSM 代码或过度动画快乐的设计师造成的。
  • WPF 有时会很慢,通常是因为硬件要求。即使是新的 WPF 点插值也可能是对低端上一代英特尔集成显卡的压力。这些电脑适合今天使用吗?如果不是更好地坚持使用winforms。您是否尝试过一些高级 WPF 动画?如果一切正常,那么问题可能出在您的代码中。
  • 我有一个动画(经典加载圈),它以可接受的速度运行(虽然不是很流畅)。我真的得出结论,唯一的问题是需求,即使客户确实有运行 WPF 的正确配置,唯一的问题是他们运行大量 CPU 密集型应用程序。我将尝试在他们的机器上运行另一个 WPF 应用程序,然后看看会发生什么。尽管如此,我还是松了一口气,因为我认为数据绑定并不重(否则使用它有什么意义?)

标签: wpf data-binding mvvm binding


【解决方案1】:

我开发了一个 VoIP 应用程序,该应用程序必须维护一个庞大的联系人列表,并且每个联系人的联系人卡片(基本上是一个 ListBoxItem)上都显示了几个信息,这些信息以高频率变化。我们确实遇到了一些问题,但没有你说的那么糟糕。 我想到了两件事: - 您有多少个绑定以及生成了多少个 NotifyPropertyChanged?对于模型中更改的一个属性,您可能会生成太多事件(只是一种可能性) - 您谈到单击复选框。你的二传手会发生什么?它有多重?你可以使用异步操作吗?有时,如果它们触发的操作可能需要很长时间,则使用复选框和按钮等控件会变得很棘手。

只要我的 2 美分。

【讨论】:

  • 我唯一拥有的是一个带有布尔值的列表,单击复选框会更新相关的布尔值,我将检查它如何影响程序的其余部分,但我的调试器确保我setter 被调用一次,之后似乎没有其他任何调用:/
  • 你能贴一些代码片段吗?这将有助于更好地理解案件。听起来很奇怪,如果你点击一个复选框,更新需要很长时间,除非电脑速度非常慢。
猜你喜欢
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 2013-09-20
相关资源
最近更新 更多