2013-04-10 53 views
0

我在Propertygrid中有一個由擴展器打開的列表。我創建它使用以下站點: Customized display of collection data in a PropertyGrid.在Propertygrid中編輯不能從擴展器中啓用

我加入這個編輯器類型取消Collection Editor

class MyEditor: UITypeEditor 
{ 
    public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) 
    { 
     return UITypeEditorEditStyle.None; 
    } 
} 

[TypeConverter(typeof(ExpandableObjectConverter))] 
[Editor(typeof(MyEditor), typeof(UITypeEditor))] 
public class MyCollection : CollectionBase, ICustomTypeDescriptor 
{...} 

的問題是集合中通過擴展您不能編輯值。

我有兩個問題:

  1. 爲什麼擴展器顯示爲禁用編輯?

  2. 如何讓用戶通過擴展器進行編輯?

+0

你的自定義'PropertyDescriptor'實現是什麼樣的?通過「擴展器」,你的意思是在網格內編輯[+]'嗎?或''編輯器?特別是,什麼*轉換器*自定義屬性描述符返回每個對象? – 2013-04-10 12:29:17

+0

@MarcGravell。 'PropertyDescriptor'看起來像'PropertyDescriptor'網站。通過「擴展器」,我的意思是'[+]','[...]'=集合編輯器我通過'MyEditor.cs'刪除它。 – 2013-04-10 12:45:03

回答

0

我發現你爲什麼不能修改的原因,

因爲在列表中的每個值是object你不能編輯它,

即使我把GetValue一個值從目的。