DependencyProperty.RegisterReadOnly メソッド

定義

読み取り専用の依存関係プロパティとして、依存関係プロパティを登録します。Registers a dependency property as a read-only dependency property.

オーバーロード

RegisterReadOnly(String, Type, Type, PropertyMetadata)

プロパティ型、所有者型、プロパティ メタデータを指定して、読み取り専用の依存関係プロパティを登録します。Registers a read-only dependency property, with the specified property type, owner type, and property metadata.

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

プロパティ型、所有者型、プロパティ メタデータ、および検証コールバックを指定して、読み取り専用の依存関係プロパティを登録します。Registers a read-only dependency property, with the specified property type, owner type, property metadata, and a validation callback.

RegisterReadOnly(String, Type, Type, PropertyMetadata)

プロパティ型、所有者型、プロパティ メタデータを指定して、読み取り専用の依存関係プロパティを登録します。Registers a read-only dependency property, with the specified property type, owner type, and property metadata.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public static System.Windows.DependencyPropertyKey RegisterReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata As PropertyMetadata) As DependencyPropertyKey

パラメーター

name
String

登録する依存関係プロパティの名前。The name of the dependency property to register.

propertyType
Type

プロパティの型。The type of the property.

ownerType
Type

依存関係プロパティを登録している所有者の型。The owner type that is registering the dependency property.

typeMetadata
PropertyMetadata

依存関係プロパティのプロパティ メタデータ。Property metadata for the dependency property.

戻り値

クラスの静的な読み取り専用フィールドの値を設定するために使用する必要があり、依存関係プロパティの参照に使用される、依存関係プロパティのキー。A dependency property key that should be used to set the value of a static read-only field in your class, which is then used to reference the dependency property.

次の例では、AquariumSize 依存関係プロパティを読み取り専用として登録します。The following example registers an AquariumSize dependency property as read-only. この例では、AquariumSizeKey を内部キーとして定義し (そのため、アセンブリ内の他のクラスがメタデータをオーバーライドする可能性があります)、そのキーに基づいて依存関係プロパティ識別子を AquariumSizePropertyとして公開します。The example defines AquariumSizeKey as an internal key (so that other classes in the assembly could override metadata) and exposes the dependency property identifier based on that key as AquariumSizeProperty. また、ラッパーは get アクセサーのみを使用して AquariumSize用に作成されます。Also, a wrapper is created for AquariumSize, with only a get accessor.

internal static readonly DependencyPropertyKey AquariumSizeKey = DependencyProperty.RegisterReadOnly(
  "AquariumSize",
  typeof(double),
  typeof(Aquarium),
  new PropertyMetadata(double.NaN)
);
public static readonly DependencyProperty AquariumSizeProperty =
  AquariumSizeKey.DependencyProperty;
public double AquariumSize
{
  get { return (double)GetValue(AquariumSizeProperty); }
}
Friend Shared ReadOnly AquariumSizeKey As DependencyPropertyKey = DependencyProperty.RegisterReadOnly("AquariumSize", GetType(Double), GetType(Aquarium), New PropertyMetadata(Double.NaN))
Public Shared ReadOnly AquariumSizeProperty As DependencyProperty = AquariumSizeKey.DependencyProperty
Public ReadOnly Property AquariumSize() As Double
    Get
        Return CDbl(GetValue(AquariumSizeProperty))
    End Get
End Property

注釈

このメソッドは DependencyPropertyKey型を返し、RegisterAttachedDependencyProperty型を返します。This method returns the type DependencyPropertyKey, whereas RegisterAttached returns the type DependencyProperty. 通常、読み取り専用プロパティを表すキーは公開されません。これは、キーを使用して SetValue(DependencyPropertyKey, Object)を呼び出すことによって依存関係プロパティの値を設定できるためです。Typically, the keys that represent read-only properties are not made public, because the keys can be used to set the dependency property value by calling SetValue(DependencyPropertyKey, Object). クラスの設計は要件に影響しますが、一般に、クラスまたはアプリケーションロジックの一部としてその依存関係プロパティを設定するために必要なコード部分のみに、DependencyPropertyKey のアクセスと可視性を制限することをお勧めします。Your class design will affect your requirements, but it is generally recommended to limit the access and visibility of any DependencyPropertyKey to only those parts of your code that are necessary to set that dependency property as part of class or application logic. また、DependencyPropertyKey.DependencyProperty の値をクラスの public static readonly フィールドとして公開することによって、読み取り専用の依存関係プロパティの依存関係プロパティ識別子を公開することもお勧めします。It is also recommended that you expose a dependency property identifier for the read-only dependency property, by exposing the value of DependencyPropertyKey.DependencyProperty as a public static readonly field on your class.

読み取り専用の依存関係プロパティは、既存の API とカスタマイズシナリオの両方で、非常に一般的なシナリオです。他の WPFWPF 機能では、そのプロパティが呼び出し元によって設定されることを意図していない場合でも依存関係プロパティが必要になる可能性があるためです。Read-only dependency properties are a fairly typical scenario both in the existing API and for customization scenarios, because other WPFWPF features might require a dependency property even if that property is not intended to be settable by callers. 読み取り専用の依存関係プロパティの値は、依存関係プロパティを受け取る他のプロパティシステム操作の基準として使用できます。たとえば、スタイルの依存関係プロパティの Trigger に基づいています。You can use the value of a read-only dependency property as the basis for other property system operations that take a dependency property, such as basing a Trigger on the dependency property in a style.

依存関係プロパティの登録の詳細については、「DependencyProperty」を参照してください。For more information on dependency property registration, see DependencyProperty.

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

プロパティ型、所有者型、プロパティ メタデータ、および検証コールバックを指定して、読み取り専用の依存関係プロパティを登録します。Registers a read-only dependency property, with the specified property type, owner type, property metadata, and a validation callback.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey

パラメーター

name
String

登録する依存関係プロパティの名前。The name of the dependency property to register.

propertyType
Type

プロパティの型。The type of the property.

ownerType
Type

依存関係プロパティを登録している所有者の型。The owner type that is registering the dependency property.

typeMetadata
PropertyMetadata

依存関係プロパティのプロパティ メタデータ。Property metadata for the dependency property.

validateValueCallback
ValidateValueCallback

通常の型検証に加えて、依存関係プロパティ値のカスタム検証を実行する必要があるユーザー作成のコールバックへの参照。A reference to a user-created callback that should perform any custom validation of the dependency property value beyond typical type validation.

戻り値

クラスの静的な読み取り専用フィールドの値を設定するために使用する必要がある依存関係プロパティのキー。これは後で依存関係プロパティの参照に使用されます。A dependency property key that should be used to set the value of a static read-only field in your class, which is then used to reference the dependency property later.

注釈

このメソッドは DependencyPropertyKey型を返し、RegisterAttachedDependencyProperty型を返します。This method returns the type DependencyPropertyKey, whereas RegisterAttached returns the type DependencyProperty. 通常、読み取り専用プロパティを表すキーは公開されません。これは、キーを使用して SetValue(DependencyPropertyKey, Object)を呼び出すことによって依存関係プロパティの値を設定できるためです。Typically, the keys that represent read-only properties are not made public, because the keys can be used to set the dependency property value by calling SetValue(DependencyPropertyKey, Object). クラスの設計は要件に影響しますが、一般に、クラスまたはアプリケーションロジックの一部としてその依存関係プロパティを設定するために必要なコード部分のみに、DependencyPropertyKey のアクセスと可視性を制限することをお勧めします。Your class design will affect your requirements, but it is generally recommended to limit the access and visibility of any DependencyPropertyKey to only those parts of your code that are necessary to set that dependency property as part of class or application logic. また、DependencyPropertyKey.DependencyProperty の値をクラスの public static readonly フィールドとして公開することによって、読み取り専用の依存関係プロパティの依存関係プロパティ識別子を公開することもお勧めします。It is also recommended that you expose a dependency property identifier for the read-only dependency property, by exposing the value of DependencyPropertyKey.DependencyProperty as a public static readonly field on your class.

読み取り専用の依存関係プロパティは、非常に一般的なシナリオです。Read-only dependency properties are a fairly typical scenario. 読み取り専用の依存関係プロパティの値は、依存関係プロパティを受け取る他のプロパティシステム操作の基準として使用できます。たとえば、スタイルの依存関係プロパティの Trigger に基づいています。You can use the value of a read-only dependency property as the basis for other property system operations that take a dependency property, such as basing a Trigger on the dependency property in a style.

依存関係プロパティの登録の詳細については、「DependencyProperty」を参照してください。For more information on dependency property registration, see DependencyProperty.

読み取り専用の依存関係プロパティでの検証は、重要度が低い場合があります。Validation on a read-only dependency property might be less important. キーに指定した非パブリックアクセスレベルにより、任意の無効な入力の可能性が減少します。The nonpublic access level you specify for the key reduces the likelihood for arbitrary invalid input.

適用対象