エクスポート (0) 印刷
すべて展開
この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。
訳文
原文

DependencyObject.GetValue メソッド

DependencyObject から依存関係プロパティの現在の有効値を返します。

名前空間:  System.Windows
アセンブリ :  System.Windows (System.Windows.dll 内)

public Object GetValue(
	DependencyProperty dp
)

パラメーター

dp
型 : System.Windows.DependencyProperty
値を取得する対象のプロパティの DependencyProperty 識別子。

戻り値

型 : System.Object
現在の有効値を返します。

例外条件
ArgumentNullException

dp が null です。

有効値とは、プロパティの値を要求する呼び出し元に対してプロパティ システムから返される値です。 有効値は、プロパティ システムがプロパティ システム値の優先順位に関係する可能性のあるすべての入力を評価した結果です。 これには、プロパティ変更コールバック、データ バインディング、スタイルとテンプレート、およびアニメーションが含まれます。

ユーザー コードでは、GetValue の呼び出しは一般的には不要です。 通常、Silverlight 依存関係プロパティまたはカスタム依存関係プロパティには、そのプロパティをラップする CLR プロパティがあり、CLR の従来の簡単な使用方法でそのプロパティ値を取得できます。 CLR ラッパーではなく、GetValue が使用されると思われる主なシナリオは 3 つです。

  • 自分でカスタム依存関係プロパティを定義するとします。 CLR を使用するために、独自のプロパティ get アクセサー / ラッパーの定義の一部として GetValue を呼び出します。 詳細については、「カスタムの依存関係オブジェクトと依存関係プロパティ」を参照してください。

  • Silverlight プロパティ システムで、より下位のレベルを公開する API のスコープ内で操作しています。 このような API は、多くの場合、パラメーターまたは戻り値として DependencyProperty 値を使用します。 たとえば、コールバックを定義している場合、または、既に DependencyProperty 識別子が渡されるその他のスコープ内にいる場合があります。 そのスコープ内で操作できる依存関係プロパティが複数、存在する場合があります。 このような場合は、GetValue を呼び出して、すでにある識別子を渡す方が簡単です。

  • DependencyProperty 識別子で添付プロパティを参照するとします (または、それが添付プロパティであるか、CLR ラッパーを持つ依存関係プロパティであるかが明確ではないとします)。 添付プロパティにも、その XAML 実装パターンごとに専用の get および set アクセサーがあります。一般的に、これらのアクセサーは、よりタイプ セーフです。 既に識別子がある場合は、やはり、GetValue を使用する方が便利である可能性があります。

JavaScript API についてのメモ

GetValue の JavaScript 実装は、その入力型が DependencyProperty 識別子 (オブジェクト) ではなく、名前 (文字列) として扱われるというのが主な理由により、著しく異なります。 JavaScript の GetValue メソッドを使用して、JavaScript API で使用できる Silverlight プロパティの値を取得できます。 ただし、通常は、このメソッドを使用してプロパティ値を取得する必要はありません。これは、Silverlight のすべてのプロパティで、オブジェクト モデルへの JavaScript アクセスで、より直接的な「ドット付き」プロパティ構文がサポートされているためです。

これに対して、GetValue のマネージ コード実装を使用するには、DependencyProperty オブジェクトの入力を用意する必要があります。 通常、この値は、依存関係プロパティの識別子として機能する public static プロパティ (依存関係プロパティ自体が宣言されたメンバーである同じオブジェクトで使用できます) から取得します。 すべてのプロパティが依存関係プロパティであるとは限らないことに注意してください。つまり、GetValue のマネージ コード実装では、マネージ API で使用できるプロパティの一部にアクセスできません (依存関係プロパティにのみアクセスできます)。

単純な依存関係プロパティの宣言を次の例に示します。 新しい依存関係プロパティの CLR ラッパーの get アクセサー実装は、GetValue の呼び出しのみで構成されています。


public class Fish : Control
{
    public static readonly DependencyProperty SpeciesProperty =
    DependencyProperty.Register(
    "Species",
    typeof(string),
    typeof(Fish), null
    );
    public string Species
    {
        get { return (string)GetValue(SpeciesProperty); }
        set { SetValue(SpeciesProperty, (string)value); }
    }
}


Silverlight

サポート対象 : 5、4、3

Silverlight for Windows Phone

サポート対象 : Windows Phone OS 7.1、Windows Phone OS 7.0

Silverlight でサポートされるオペレーティング システムの詳細については、「サポートされているオペレーティング システムとブラウザー」を参照してください。

コミュニティの追加

追加
表示:
© 2014 Microsoft