1

我有以下属性

[DefaultValue(true), Category("Behavior")]
public bool EnableBinding { get; set; }        

[DefaultValue(false), Category("Behavior")]
public bool NeedApprove { get; set; }

当使用设计器更改并保存然后重建时,您通过设计器设置的新值将仅保留属性 NeedApprove。EnableBinding 总是被重置为 false。

试过了

1) DesignerSerializationVisibility 属性,但是没用!

  • 可见的
  • 内容

2)将汽车属性转换为完整属性这有效。但为什么?如果不转换为完整属性,我们不能实现这一目标吗?

4

1 回答 1

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在反序列化期间一样被初始化。

于 2016-01-27T10:17:19.533 回答