我有一个自定义类:
[TypeConverter(typeof(ExpandableObjectConverter))]
public class CustomClass
{
public int State { get; set; }
}
只读属性:
public class MyControl : UserControl
{
public CustomClass MyProperty { get; } = new CustomClass();
}
该属性在属性窗口中显示并可以编辑。
但是该值未保存,如果重新打开设计器,它将恢复。
我认为设计人员生成如下代码并不难:
myControl.MyProperty.State = 1;
如何使readonly属性可保存?
答案 0 :(得分:0)
您可以在支持字段中使用两个不同的属性。使用ReadOnly
属性
[ReadOnly(true)]
public int ReadOnlyStateProp
{
get
{
return _ReadOnlyState;
}
set
{
_ReadOnlyState = value;
}
}
public int ReadOnlyState
{
get
{
return _ReadOnlyState;
}
set
{
_ReadOnlyState = value;
}
}
现在您可以将ReadOnlyStateProp
用于属性窗口,并将ReadOnlyState
用于属性窗口
在可编辑的上下文中。
答案 1 :(得分:0)
经过几天的搜索,我找到了一个解决方案,非常简单:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public CustomClass MyProperty { get; } = new CustomClass();