DependencyProperty.ReadOnly DependencyProperty.ReadOnly DependencyProperty.ReadOnly DependencyProperty.ReadOnly Property


この DependencyProperty インスタンスによって識別される依存関係プロパティが読み取り専用の依存関係プロパティかどうかを示す値を取得します。Gets a value that indicates whether the dependency property identified by this DependencyProperty instance is a read-only dependency property.

 property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean


依存関係プロパティが読み取り専用の場合は true。それ以外の場合は falsetrue if the dependency property is read-only; otherwise, false.

次の例では、さまざまな依存関係プロパティのフィールドから、既定のメタデータと依存関係プロパティの識別子のプロパティを取得し、情報を使用して、「メタデータ ブラウザー」を実装するためにテーブルを作成します。The following example obtains the default metadata and the dependency property identifier properties from various dependency property fields, and uses the information to populate a table to implement a "metadata browser".

pm = dp.GetMetadata(dp.OwnerType);
MetadataClass.Text = pm.GetType().Name;
TypeofPropertyValue.Text = dp.PropertyType.Name;
DefaultPropertyValue.Text = (pm.DefaultValue!=null) ? pm.DefaultValue.ToString() : "null";
HasCoerceValue.Text = (pm.CoerceValueCallback == null) ? "No" : pm.CoerceValueCallback.Method.Name;
HasPropertyChanged.Text = (pm.PropertyChangedCallback == null) ? "No" : pm.PropertyChangedCallback.Method.Name;
ReadOnly.Text = (dp.ReadOnly) ? "Yes" : "No";
pm = dp.GetMetadata(dp.OwnerType)
MetadataClass.Text = pm.GetType().Name
TypeofPropertyValue.Text = dp.PropertyType.Name
DefaultPropertyValue.Text = If((pm.DefaultValue IsNot Nothing), pm.DefaultValue.ToString(), "null")
HasCoerceValue.Text = If((pm.CoerceValueCallback Is Nothing), "No", pm.CoerceValueCallback.Method.Name)
HasPropertyChanged.Text = If((pm.PropertyChangedCallback Is Nothing), "No", pm.PropertyChangedCallback.Method.Name)
          [ReadOnly].Text = If((dp.ReadOnly), "Yes", "No")


読み取り専用の依存関係プロパティは、呼び出すことによって、プロパティ システムに登録されて、RegisterReadOnlyメソッドではなく、Registerメソッド。Read-only dependency properties are registered within the property system by calling the RegisterReadOnly method as opposed to the Register method. 添付プロパティを読み取り専用として登録することもできます。参照してくださいRegisterAttachedReadOnlyします。Attached properties can also be registered as read-only; see RegisterAttachedReadOnly.

読み取り専用の依存関係プロパティが必要なDependencyPropertyKey識別子ではなくDependencyPropertyメタデータをオーバーライドまたは値の設定などのメタデータの操作を実行する識別子。Read-only dependency properties require a DependencyPropertyKey identifier rather than a DependencyProperty identifier to perform metadata operations such as overriding the metadata or setting the value. コレクションを取得した場合はDependencyPropertyを呼び出すことによって識別子GetLocalValueEnumerator別またはAPIAPI識別子、チェックを公開する、ReadOnly呼び出しを試みる前に値SetValueまたはOverrideMetadataを使用します。識別子を表す依存関係プロパティが読み取り専用ではないことを確認する、入力パラメーターとして依存関係プロパティ識別子。If you obtained a collection of DependencyProperty identifiers through a call to GetLocalValueEnumerator or another APIAPI that exposes identifiers, check the ReadOnly value before attempting to call SetValue or OverrideMetadata using that dependency property identifier as an input parameter, to verify that the dependency property that the identifier represents is not read-only. 場合の値ReadOnlytrue依存関係プロパティをプログラムでの参照を取得する方法はありません、DependencyPropertyKeyメタデータからまたはその依存関係プロパティの識別子、DependencyProperty識別子。 識別子。呼び出すために、静的フィールドとして使用可能である必要がありますSetValue(DependencyPropertyKey, Object)に対する読み取り専用の依存関係プロパティ。If the value of ReadOnly is true on a dependency property, there is no programmatic way to obtain a reference to the DependencyPropertyKey identifier of that dependency property, from the metadata or from the DependencyProperty identifier; the identifier must be available as a static field in order to call SetValue(DependencyPropertyKey, Object) against a read-only dependency property.

カスタム依存関係プロパティを作成して読み取り専用として登録するの get アクセサーのみを定義する必要があります、CLRCLRラッパー プロパティ。When you create a custom dependency property, and register it as read-only, you should define only a get accessor for the CLRCLR wrapper property. それ以外の場合、クラスは、バックアップの依存関係プロパティへのアクセスと比較してプロパティのラッパーの混乱を招くオブジェクト モデルがあります。Otherwise, your class will have a confusing object model for the property wrapper as compared to the access to the backing dependency property. 詳細については、次を参照してください。カスタム依存関係プロパティまたは読み取り専用依存関係プロパティします。For details, see Custom Dependency Properties or Read-Only Dependency Properties.