我有以下属性
[DefaultValue(true), Category("Behavior")]
public bool EnableBinding { get; set; }
[DefaultValue(false), Category("Behavior")]
public bool NeedApprove { get; set; }
使用设计器更改并保存然后重建时,通过设计器设置的新值将仅保留属性NeedApprove。 EnableBinding总是被重置为false。
尝试
1)DesignerSerializationVisibility属性,但没有用!
2)将auto属性转换为full属性 这很有效。但为什么?如果不转换为完整属性,我们难道不能实现这一目标吗?
答案 0 :(得分:1)
您应该在自定义用户控件构造函数中为EnableBinding属性分配初始值:
public partial class CustomUserControl : UserControl {
public CustomUserControl() {
InitializeComponent();
EnableBinding = true; // !!!
}
[DefaultValue(true), Category("Behavior")]
public bool EnableBinding { get; set; }
[DefaultValue(false), Category("Behavior")]
public bool NeedApprove { get; set; }
}
如果没有它,它将在反序列化期间始终初始化为false
。