有可能吗?
我们的数据网格遇到了一些性能问题,并尝试了许多改进它的技巧和窍门(例如here和here)。这些都没有太大区别。
我在画布上将问题缩小为屏幕值TextBlock
s。即便这样也会导致帧速率下降到1 /秒以下并占用整个CPU。此时wpf performance monitor停止运行,但窗口尺寸较小,布局和渲染分割大约50/50。
有没有办法让wpf显示这种数据,还是我们需要切换到更低级别的东西?这个WPFTextBenchmark似乎暗示默认的wpf文本显示比其他方法慢很多。
编辑,附加信息:
带有文本框的画布背后的想法是减少布局计算,因为一个文本块的位置不受其他文本块的影响。
编辑以回应评论:
1)我们正在查看数百个单元格(大约一个屏幕值),许多单元每秒更新一次,有些可能会在几分钟内保持不变。我们并不关心更快速的更新(例如5 /秒)。
2)我们正在使用INotifyPropertyChanged和DataBindings来更新UI。
答案 0 :(得分:1)
您可能希望查看除绑定之外更新值的其他方法。绑定传统上很慢,将控件绑定到所有数据可能会更好,让控件找出如何获得所需的实际值。
另一个想法是,不是让整个数据驱动(数据更改 - > UI更新)使其成为UI驱动(UI每秒刷新一次 - >从数据中提取最新值)。这不是在WPF中做事的常用方法,但它有效。