如何防止 PropertyGrid.Update() 变慢

本文关键字:变慢 Update 何防止 PropertyGrid | 更新日期: 2023-09-27 17:56:55

我正在使用 Xceed PropertyGrid WPF 控件。

由于我需要频繁快速地刷新网格中的对象值,因此我使用了属性网格的Update方法:https://xceed.com/wp-content/documentation/xceed-toolkit-plus-for-wpf/Xceed.Wpf.Toolkit~Xceed.Wpf.Toolkit.PropertyGrid.PropertyGrid~Update.html

但是,我注意到每次调用该方法时,这都会变得越来越慢。例如,此代码模拟逐渐减速:

// Takes 618 ms
for (var x = 0; x < 100; x++) PGMain.Update();
// Takes 1649 ms
for (var x = 0; x < 100; x++) PGMain.Update();
// Takes 2739 ms
for (var x = 0; x < 100; x++) PGMain.Update();
// Takes 3730 ms
for (var x = 0; x < 100; x++) PGMain.Update();

其他人遇到了这个错误/问题?

除了重新分配SelectedObject(速度很慢)之外,是否有其他解决方法/修复?

如何防止 PropertyGrid.Update() 变慢

自从提出这个问题以来已经有一段时间了,但无论如何。我现在遇到了同样的问题,我也在 xceed 论坛上阅读了您的帖子。我可以找到任何好的解决方案,所以我开始尝试一些事情......

不要问我为什么,但就我而言,如果我执行以下操作,它就会保持稳定的更新时间:

  1. <xctk:PropertyGrid x:Name="PropertyGrid_Eigenschaften" Margin="3" NameColumnWidth="215" SelectedObject="{Binding}"/>
  2. PropertyGrid_Eigenschaften.DataContext = Achse.Eigenschaften;
  3. 我的类中的所有属性都有一个 [RefreshProperties(RefreshProperties.All)] 属性
  4. 使用PropertyGrid_Eigenschaften.Update();定期刷新属性网格

它没有我希望的那么快,但至少它是朝着正确方向迈出的第一步。