2011-06-16 139 views
1

我正在嘗試使用propertygrid進行可配置/可編輯的對象。 除了對象內部的對象,這一切都很順利。編輯PropertyGrid中的對象內的對象的屬性

我有一個名爲「ContactInformation」的對象/類。在那個對象裏面我有一個名爲「函數」的對象。

這是部分的外觀:

[Browsable(false)] 
public Correspondence Correspondence 
{ 
    get; 
    set; 
} 
public int CorrespondenceStatus 
{ 
    get { return this.Correspondence.Status; } 
    set { this.Correspondence.Status = CorrespondenceStatus; } 
} 
public string CorrespondenceComment 
{ 
    get { return this.Correspondence.Comment; } 
    set { this.Correspondence.Comment = CorrespondenceComment; } 
} 
public DateTime CorrespondenceDate 
{ 
    get { return this.Correspondence.LastSend; } 
    set { this.Correspondence.LastSend = CorrespondenceDate; } 
} 

這樣我可以顯示屬性的對象內的對象/變量,PropertyGrid中。

無論如何,當我現在編輯的值,然後按回車,或者點擊其他地方,而不是保持它的價值我剛纔輸入,它變回..

任何人有一個想法,爲什麼這種情況正在發生?或者,也許更好的主意,以顯示在propertygrid中的對象的屬性?

+0

也許PropertyGrid中的一個簡單的刷新將解決這個問題。 '改變數據後的'propertyGrid.refresh()'。 – Samidjo 2011-06-16 08:07:33

+0

不,沒有工作.. – 2011-06-16 08:56:25

+0

@MichielMagendans,你是否成功地在擴展器中編輯變量? – 2013-04-11 09:41:01

回答

4

要編輯對象內部的屬性(這就是您看到的例如使用類似於Font或Padding等屬性的Winform編輯器,您可以在其中單擊「加號」圖標「展開」該對象)你可以使用ExpandableObjectConverter類,像這樣:

[TypeConverter(typeof(ExpandableObjectConverter))] 
public class Correspondence 
{ 
... 
} 

並取出可瀏覽課程(假):

public Correspondence Correspondence 
{ 
    get; 
    set; 
} 
+0

+1 Spot on !! :) – MattDavey 2011-06-17 08:07:06

相關問題