DependencyProperty.RegisterReadOnly メソッド

定義

読み取り専用の依存関係プロパティとして、依存関係プロパティを登録します。

オーバーロード

RegisterReadOnly(String, Type, Type, PropertyMetadata)

プロパティ型、所有者型、プロパティ メタデータを指定して、読み取り専用の依存関係プロパティを登録します。

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

プロパティ型、所有者型、プロパティ メタデータ、および検証コールバックを指定して、読み取り専用の依存関係プロパティを登録します。

RegisterReadOnly(String, Type, Type, PropertyMetadata)

プロパティ型、所有者型、プロパティ メタデータを指定して、読み取り専用の依存関係プロパティを登録します。

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

登録する依存関係プロパティの名前。

propertyType
Type

プロパティの型。

ownerType
Type

依存関係プロパティを登録する所有者型。

typeMetadata
PropertyMetadata

依存関係プロパティのプロパティ メタデータ。

戻り値

DependencyPropertyKey

クラスの静的な読み取り専用フィールドの値を設定するために使用する必要があり、依存関係プロパティの参照に使用される、依存関係プロパティのキー。

次の例では、依存関係プロパティを AquariumSize 読み取り専用として登録します。 この例では、(アセンブリ内の AquariumSizeKey 他のクラスがメタデータをオーバーライドできるように) 内部キーとして定義し、そのキーに基づいて依存関係プロパティ識別子を次のように AquariumSizeProperty公開します。 また、get アクセサーのみを使用して AquariumSize、ラッパーが作成されます。

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を返しますが、 RegisterAttached 型を返します DependencyProperty。 通常、読み取り専用プロパティを表すキーは公開されません。これは、キーを使用して呼び出 SetValue(DependencyPropertyKey, Object)すことによって依存関係プロパティの値を設定できるためです。 クラスの設計は要件に影響しますが、通常は、クラスまたはアプリケーション ロジックの一部として依存関係プロパティを設定するために必要なコードの部分のみに、アクセス DependencyPropertyKey と可視性を制限することをお勧めします。 また、クラスのフィールドとしてpublic static readonly値を公開することで、読み取り専用の依存関係プロパティのDependencyPropertyKey.DependencyProperty依存関係プロパティ識別子を公開することもお勧めします。

読み取り専用の依存関係プロパティは、既存の API とカスタマイズ シナリオの両方で非常に一般的なシナリオです。他の WPF 機能では、そのプロパティが呼び出し元によって設定されることを意図していない場合でも依存関係プロパティが必要になる場合があるためです。 読み取り専用の依存関係プロパティの値は、依存関係プロパティを取得する他のプロパティ システム操作の基礎として使用できます (スタイルの依存関係プロパティに基づく Trigger など)。

依存関係プロパティの登録の詳細については、次を参照してください DependencyProperty

適用対象

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

プロパティ型、所有者型、プロパティ メタデータ、および検証コールバックを指定して、読み取り専用の依存関係プロパティを登録します。

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
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata As PropertyMetadata, validateValueCallback As ValidateValueCallback) As DependencyPropertyKey

パラメーター

name
String

登録する依存関係プロパティの名前。

propertyType
Type

プロパティの型。

ownerType
Type

依存関係プロパティを登録する所有者型。

typeMetadata
PropertyMetadata

依存関係プロパティのプロパティ メタデータ。

validateValueCallback
ValidateValueCallback

通常の型検証に加えて、依存関係プロパティ値のカスタム検証を実行する必要があるユーザー作成のコールバックへの参照。

戻り値

DependencyPropertyKey

クラスの静的な読み取り専用フィールドの値を設定するために使用する必要がある依存関係プロパティのキー。これは後で依存関係プロパティの参照に使用されます。

注釈

このメソッドは型 DependencyPropertyKeyを返しますが、 RegisterAttached 型を返します DependencyProperty。 通常、読み取り専用プロパティを表すキーは公開されません。これは、キーを使用して呼び出 SetValue(DependencyPropertyKey, Object)すことによって依存関係プロパティの値を設定できるためです。 クラスの設計は要件に影響しますが、通常は、クラスまたはアプリケーション ロジックの一部として依存関係プロパティを設定するために必要なコードの部分のみに、アクセス DependencyPropertyKey と可視性を制限することをお勧めします。 また、クラスのフィールドとしてpublic static readonly値を公開することで、読み取り専用の依存関係プロパティのDependencyPropertyKey.DependencyProperty依存関係プロパティ識別子を公開することもお勧めします。

読み取り専用の依存関係プロパティは、かなり一般的なシナリオです。 読み取り専用の依存関係プロパティの値は、依存関係プロパティを取得する他のプロパティ システム操作の基礎として使用できます (スタイルの依存関係プロパティに基づく Trigger など)。

依存関係プロパティの登録の詳細については、次を参照してください DependencyProperty

読み取り専用の依存関係プロパティの検証はあまり重要でない場合があります。 キーに指定する非パブリック アクセス レベルを使用すると、任意の無効な入力の可能性が低くなります。

適用対象