【问题标题】:How to update PropertyGrid from a custom editor?如何从自定义编辑器更新 PropertyGrid?
【发布时间】:2012-12-15 15:25:45
【问题描述】:

我正在使用PropertyGrid(在 CollectionEditor 中)来编辑类的一些属性。这些属性实际上包装在实现ICustomTypeDescriptor 的类中。其中一个使用继承自UITypeEditor 的自定义编辑器。当用户在自定义编辑器中更改此属性的值时,另一个属性的值也会被更新(通过自定义编辑器中的代码;因此,属性包装器引用了另一个属性)。到目前为止一切顺利。

但是当用户关闭自定义编辑器时,PropertyGrid 只显示已编辑属性的新值,并不会刷新其他属性(即使它的值肯定已更改)。

如何从自定义编辑器刷新整个包含 PropertyGrid 的内容?

【问题讨论】:

  • 在您编辑的属性上使用 [RefreshProperties] 属性。
  • @HansPassant 它不起作用。我已经在所有属性上尝试了 并且还通过 PropertyDescriptor 继承者返回了它。也许这是因为我使用的 PropertyGrid 实际上是 CollectionEditor 中的那个?
  • 今天早上有人打破了我的水晶球,我将在今年剩下的时间里没有一个。显然,您需要更好地记录您的问题。

标签: .net propertygrid uitypeeditor


【解决方案1】:

我自己找到了解决方案:

自定义编辑器的 EditValue 方法应该返回一个新对象,而不是传入的值对象。然后 PropertyGrid 也会自动刷新其他属性。

我不需要在任何地方使用 RefreshProperties 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2011-04-27
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多