2010-09-12 94 views
1

問題:當對象具有 :C#PropertyGrid中和接口屬性

class A 
{ 
    public ISomeinterface PropertyName { get; set; } 
} 

,然後將該類的實例被分配給propertyGrid.SelectedObject =新的A(); 然後當試圖編輯PropertyName的值時,會顯示關於無法創建ISomeinterface實例的異常(理所當然),問題是如何解決此問題而不中斷我的類和接口。

+0

使用它時,屬性是否爲null或非null? – 2010-09-12 12:40:14

+0

它是空的,當我使用它 – user440850 2010-09-12 13:06:44

回答

1

對,PropertyGrid沒有猜測如何賦值的希望。所以,隱藏它:

class A 
{ 
    [Browsable(false)] 
    public ISomeinterface PropertyName { get; set; } 
} 

如果屬性分配是一個需求,那麼你需要實現一個屬性的UITypeEditor。

+0

但我不明白的方式,如果我有一個說ISomeInterface []和比我有A,B實現此接口,方式不能有一個編輯器,允許我添加A還是B?是不是有一些技巧來克服這一點?因爲我已經構建了一個編輯器,它可以工作,但這是多餘的,因爲它應該被自動渲染,這就是全部否定的? – user440850 2010-09-15 15:17:19