1

可能吗?

我们的数据网格一直存在一些性能问题,并且已经尝试了许多改进它的技巧和窍门(例如这里这里)。这些都没有太大的不同。

TextBlock我将问题简化为画布上屏幕的 s 值。即使这样也会导致帧率下降到低于 1/sec 并吃掉整个 cpu。此时wpf 性能监视器停止运行,但由于窗口尺寸较小,布局和渲染被分割为大约 50/50。

有什么方法可以让 wpf 显示这种数据,还是我们需要切换到较低级别的东西?这个WPFTextBenchmark似乎表明默认的 wpf 文本显示比其他方法慢很多。

编辑,附加信息:

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

根据评论进行编辑:

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

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

4

1 回答 1

1

除了绑定之外,您可能还想查看其他更新值的方法。绑定传统上很慢,最好将控件绑定到所有数据,并让控件弄清楚如何获取它需要的实际值。

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

于 2013-03-20T08:15:19.327 回答