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) auto プロパティを full プロパティに変換する これはうまくいきました。しかし、なぜ?完全なプロパティに変換せずにこれを達成することはできませんか?

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 に答える