在wpf中显示大量快速变化的数字

时间:2013-03-20 05:49:33

标签: c# wpf performance

有可能吗?

我们的数据网格遇到了一些性能问题,并尝试了许多改进它的技巧和窍门(例如herehere)。这些都没有太大区别。

我在画布上将问题缩小为屏幕值TextBlock s。即便这样也会导致帧速率下降到1 /秒以下并占用整个CPU。此时wpf performance monitor停止运行,但窗口尺寸较小,布局和渲染分割大约50/50。

有没有办法让wpf显示这种数据,还是我们需要切换到更低级别的东西?这个WPFTextBenchmark似乎暗示默认的wpf文本显示比其他方法慢很多。

编辑,附加信息:

带有文本框的画布背后的想法是减少布局计算,因为一个文本块的位置不受其他文本块的影响。

编辑以回应评论:

1)我们正在查看数百个单元格(大约一个屏幕值),许多单元每秒更新一次,有些可能会在几分钟内保持不变。我们并不关心更快速的更新(例如5 /秒)。

2)我们正在使用INotifyPropertyChanged和DataBindings来更新UI。

1 个答案:

答案 0 :(得分:1)

您可能希望查看除绑定之外更新值的其他方法。绑定传统上很慢,将控件绑定到所有数据可能会更好,让控件找出如何获得所需的实际值。

另一个想法是,不是让整个数据驱动(数据更改 - > UI更新)使其成为UI驱动(UI每秒刷新一次 - >从数据中提取最新值)。这不是在WPF中做事的常用方法,但它有效。