![](/img/trans.png)
[英]How does PropertyDescriptor.ResetValue Method determine default value of property
[英]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.