自定义用户控件的自定义属性在重建期间重置

时间:2016-01-27 10:00:15

标签: c# .net custom-controls custom-properties

我有以下属性

[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属性    这很有效。但为什么?如果不转换为完整属性,我们难道不能实现这一目标吗?

1 个答案:

答案 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