英語で読む

次の方法で共有


DependencyPropertyKey クラス

定義

読み取り専用の依存関係プロパティへの制限付き書き込みアクセスの依存関係プロパティ識別子を提供します。

C#
public sealed class DependencyPropertyKey
継承
DependencyPropertyKey

次の例では、読み取り専用の依存関係プロパティを登録し、他のクラス メンバーの 2 つの目的にもキーを使用します。get "ラッパー" を実装し、他のプロパティ値の計算に基づいて値を設定する保護された決定操作の識別子として使用します。

C#
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); }
}

注釈

DependencyPropertyKey インスタンスは、RegisterReadOnly または RegisterAttachedReadOnlyメソッドを使用して、依存関係プロパティ登録呼び出しの戻り値として取得されます。

依存関係プロパティを登録する型は、クラス ロジックの一部としてプロパティの値を調整する SetValueClearValue の呼び出しで DependencyPropertyKey を使用できます。 キーのアクセス レベルで許可されている場合、関連するクラスはキーと依存関係プロパティも使用できます。 たとえば、キーを内部として宣言できます。また、同じアセンブリ内の他の型でも、その依存関係プロパティを設定できます。

キーを公開するとプロパティが設定可能になり、読み取り専用の依存関係プロパティとして登録するポイントが無効になるため、読み取り専用の依存関係プロパティの登録によって返される DependencyPropertyKey を公開しないでください。 また、キーを公開すると、使用可能な依存関係プロパティの動作とその共通言語ランタイム (CLR) プロパティ ラッパー実装の間で不一致が発生します。これは、クラスの設計が不適切です。

キー自体を公開する代わりに、DependencyPropertyKeyDependencyProperty 値をクラスの public static readonlyDependencyProperty として公開する必要があります。 これにより、プロパティは、ローカルに設定された値の列挙など、特定のプロパティ システム操作の有効な依存関係プロパティ識別子を返すことができます。 ただし、このように取得された識別子には、多くのプロパティ システム操作に対する DependencyProperty の完全な機能がありません。

プロパティ

DependencyProperty

この特殊な読み取り専用の依存関係プロパティ識別子に関連付けられている依存関係プロパティ識別子を取得します。

メソッド

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
OverrideMetadata(Type, PropertyMetadata)

この依存関係プロパティ識別子によって表される読み取り専用の依存関係プロパティのメタデータをオーバーライドします。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

製品 バージョン
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

こちらもご覧ください