簡體   English   中英

在PropertyDescriptor中的ResetValue之后強制更新屬性網格

[英]Force property grid to update after ResetValue in PropertyDescriptor

我在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實現觸發的單元格?

我在這里發現了一個類似的問題: PropertyGrid沒注意到屬性在代碼中發生了變化嗎?

我采用的解決方案是實現INotifyPropertyChanged通知事件,並將其注冊到屬性網格上以進行刷新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM