c# - 反映されない - wpf defaultvalue




DefaultValue属性が自分のAutoプロパティで機能しない (2)

DefaultValue属性は、プロパティの既定値が何であるかをVisual Studioデザイナーに伝えるためにのみ使用されます(フォームの設計時など)。 コード内の属性の実際のデフォルト値は設定されません。

詳細はこちら: http://support.microsoft.com/kb/311339 : http://support.microsoft.com/kb/311339

私は次のAuto Propertyを持っています

[DefaultValue(true)]
public bool RetrieveAllInfo { get; set; }

私はコード内でそれを使用しようとすると、私はデフォルトのfalseがfalseと判断します。これはbool変数のデフォルト値であると仮定します。


[DefaultValue]は、(例えば)シリアル化API( XmlSerializer )と一部のUI要素( PropertyGrid )でのみ使用されます。 値自体は設定されません。 そのためにコンストラクタを使用する必要があります:

public MyType()
{
    RetrieveAllInfo = true;
}

フィールドを手動で設定します。つまり、自動的に実装されるプロパティを使用しないでください。

private bool retrieveAllInfo = true;
[DefaultValue(true)]
public bool RetrieveAllInfo {
    get {return retrieveAllInfo; }
    set {retrieveAllInfo = value; }
}




automatic-properties