【问题标题】:Force property grid to update after ResetValue in PropertyDescriptor在 PropertyDescriptor 中的 ResetValue 之后强制属性网格更新
【发布时间】: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 实现触发的单元格的事件类型?

【问题讨论】:

标签: c# winforms propertydescriptor icustomtypedescriptor


【解决方案1】:

我在这里发现了一个类似的问题:PropertyGrid doesn't notice properties changed in code?

我采用的解决方案是实现 INotifyPropertyChanged 通知事件并将其注册到属性网格以进行刷新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 2017-06-05
    • 1970-01-01
    • 2016-06-19
    • 2020-06-11
    • 2018-01-25
    相关资源
    最近更新 更多