【发布时间】:2015-07-28 22:51:24
【问题描述】:
我正在使用 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 实现触发的单元格的事件类型?
【问题讨论】:
-
SO 使用 Markdown 进行代码高亮。请参阅Markdown Cheetsheet 以供将来参考。
标签: c# winforms propertydescriptor icustomtypedescriptor