DevExpress Winforms使用技巧教程:如何在WinForms PropertyGrid控件中使用自定義編輯器
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
DevExpress Winforms Controls 內置140多個UI控件和庫,完美構建流暢、美觀且易于使用的應用程序。想要體驗?點擊下載>>
遇到的問題
當使用DefaultEditors屬性將類型的自定義編輯器添加到PropertyGrid時,除非該類型具有EditorAttribute(編輯器的實際類型似乎無關緊要),否則將禁用該編輯器。
在DevExpress版本18.1中,使用Color擴展ColorEditor正常工作;但在v19.2中,禁用了CustomColor的編輯器,啟用了CustomColorAttr的編輯器。
解決方案
官方技術團隊修復此錯誤后并更改了操作: 。在之前沒有考慮標準的DescriptorContext.IsValueEditable方法,這導致了錯誤的結果,現在在代碼中正確使用此方法。
如果嘗試將對象分配給標準PropertyGrid,則由于DescriptorContext.IsValueEditable方法返回false,因此將獲得相同的結果。 反過來,此方法返回false,因為用于自定義類的類型轉換器無法將字符串值轉換為您的類型。 ColorEditor使用可以執行此類轉換的ColorConverter。
因此,要啟用對自定義類的編輯,您需要應用支持從字符串值到類型轉換的類型轉換器。
DevExpress技術交流群2:775869749 歡迎一起進群討論