我正在使用 winforms 中的属性网格来显示我的自定义类型的属性 - 我使用自定义类型描述符(实现接口 ICustomTypeDescriptor)来执行此操作,以便显示我的对象的公共属性,每个属性都有自己的 PropertyDescriptor 实现。
该实现接近此处描述的代码:http: //www.codeproject.com/Articles/4448/Customized-display-of-collection-data-in-a-Propert
这有效,因为我可以看到所有属性,并且它们在属性网格中有自己的编辑器但是我有如何实现的问题
public override void ResetValue(object component)
在基础 PropertyDescriptor 上。
目前我已经像这样实现它:
public override void ResetValue(object component)
{
if (!_isReadOnly && _dataDefault != null)
{
SetValue(component, _dataDefault.Value);
}
}
然而,尽管数据确实得到了更新,属性网格显示只显示旧值,除非我刷新它 - 我无法弄清楚属性网格将如何更新或知道值已更改,是否存在某种事件刷新可以从 PropertyDescriptor 实现触发的单元格?