2012-12-15 39 views
3

我正在使用PropertyGrid(在CollectionEditor中)編輯某個類的某些屬性。這些屬性實際上被包裝在實現ICustomTypeDescriptor的類中。其中一個使用從UITypeEditor繼承的自定義編輯器。當用戶在自定義編輯器中更改此屬性的值時,另一個屬性的值也會更新(由自定義編輯器中的代碼進行更新;由於此原因,屬性包裝器對其他屬性進行了引用)。到現在爲止還挺好。如何從自定義編輯器更新PropertyGrid?

但是,當用戶關閉自定義編輯器時,PropertyGrid僅顯示已編輯屬性的新值並且不刷新其他屬性(即使其值已明確更改)。

如何從定製編輯器刷新整個包含PropertyGrid的文件?

+0

在您編輯的屬性上使用[RefreshProperties]屬性。 –

+0

@HansPassant它不起作用。我已經在所有屬性上嘗試過,並且通過PropertyDescriptor繼承者返回它。也許這是因爲我使用的PropertyGrid實際上是CollectionEditor中的一個? – Peladao

+0

今天早上有人打破了我的水晶球,今年剩下的時間我都會失去一顆水晶球。顯然,你需要更好地記錄你的問題。 –

回答

1

我找到了自己的解決方案:

自定義編輯器的的EditValue方法應該返回一個新的對象,而不是價值傳入的對象。然後PropertyGrid也會自動刷新其他屬性。

我不需要在任何地方使用RefreshProperties屬性。

相關問題