编辑对象的属性在PropertyGrid的对象内(Editing a property of an

2019-09-27 11:03发布

我试图使一个对象,configureable /编辑用的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中的对象的对象的属性?

Answer 1:

要编辑属性的对象内(这是你所看到的,例如与像字体,或者padding属性在WinForm编辑器,...在这里你可以在“扩展”的“加号”图标oject点击),你可以使用ExpandableObjectConverter类,如下:

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

和删除过程的可浏览(假):

public Correspondence Correspondence
{
    get;
    set;
}


文章来源: Editing a property of an object inside an object in PropertyGrid