自定义用户控件的自定义属性在重新生成期间重置

本文关键字:新生 用户 控件 自定义属性 自定义 | 更新日期: 2023-09-27 18:32:09

我有以下属性

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

使用设计器更改并保存然后重新生成时,通过设计器设置的新值将仅保留在属性 NeedApproved 中。启用绑定总是被重置为 false。

1)设计器序列化可见性属性,但没有工作!

  • 可见
  • 隐藏
  • 内容

2) 将自动属性转换为完整属性 这奏效了。但是为什么?我们不能在不转换为完整财产的情况下实现这一目标吗?

自定义用户控件的自定义属性在重新生成期间重置

应在自定义用户控件构造函数中为 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