DevExpress Winforms使用技巧教程:如何在WinForms PropertyGrid控件中使用自定義編輯器
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
DevExpress Winforms Controls 內(nèi)置140多個(gè)UI控件和庫(kù),完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序。想要體驗(yàn)?點(diǎn)擊下載>>
遇到的問(wèn)題
當(dāng)使用DefaultEditors屬性將類(lèi)型的自定義編輯器添加到PropertyGrid時(shí),除非該類(lèi)型具有EditorAttribute(編輯器的實(shí)際類(lèi)型似乎無(wú)關(guān)緊要),否則將禁用該編輯器。
在DevExpress版本18.1中,使用Color擴(kuò)展ColorEditor正常工作;但在v19.2中,禁用了CustomColor的編輯器,啟用了CustomColorAttr的編輯器。
解決方案
官方技術(shù)團(tuán)隊(duì)修復(fù)此錯(cuò)誤后并更改了操作: PropertyGridControl - The Readonly attribute does not work with a custom editor。在之前沒(méi)有考慮標(biāo)準(zhǔn)的DescriptorContext.IsValueEditable方法,這導(dǎo)致了錯(cuò)誤的結(jié)果,現(xiàn)在在代碼中正確使用此方法。
如果嘗試將對(duì)象分配給標(biāo)準(zhǔn)PropertyGrid,則由于DescriptorContext.IsValueEditable方法返回false,因此將獲得相同的結(jié)果。 反過(guò)來(lái),此方法返回false,因?yàn)橛糜谧远x類(lèi)的類(lèi)型轉(zhuǎn)換器無(wú)法將字符串值轉(zhuǎn)換為您的類(lèi)型。 ColorEditor使用可以執(zhí)行此類(lèi)轉(zhuǎn)換的ColorConverter。
因此,要啟用對(duì)自定義類(lèi)的編輯,您需要應(yīng)用支持從字符串值到類(lèi)型轉(zhuǎn)換的類(lèi)型轉(zhuǎn)換器。
DevExpress技術(shù)交流群2:775869749 歡迎一起進(jìn)群討論