最終更新:2012-07-16 (月) 18:04:35 (4295d)  

依存関係プロパティ
Top / 依存関係プロパティ

ほかの要素の値に依存してプロパティの値を決定する機構

http://msdn.microsoft.com/ja-jp/library/ms752914(v=vs.80).aspx

用途

  • 包含継承: 親要素で設定した値をそのまま継承して使うための機構。
  • リソース: 1カ所で定義したオブジェクトを複数カ所から参照するための、リソースの定義/参照機構。
  • スタイル: HTMLでいうところのCSSのようなスタイル設定機構。
  • データバインディング: モデルとビューの間など、異なるオブジェクト間で値を結び付ける(一方での値の変更を他方に通知し、即座に反映させる)機構。

目的

  • 他の入力の値に基づいてプロパティの値を計算する方法を提供すること

他の入力

  • テーマやユーザー設定などのシステム プロパティ
  • データバインディングやアニメーション/ストーリーボードなどのジャスト イン タイム プロパティ判定機構
  • リソースやスタイルなどの多目的のテンプレート
  • 要素ツリー内の他の要素との親子のリレーションシップから判断される値など

DependencyProperty

  • プロパティとそれを補足する DependencyProperty フィールドの名前付け規則は重要です。フィールドの名前は常にプロパティの名前であり、サフィックス Property が追加されます。
public static readonly DependencyProperty IsSpinningProperty = 
          DependencyProperty.Register(
...

          );
      public bool IsSpinning
      {
          get { return (bool)GetValue(IsSpinningProperty); }
          set { SetValue(IsSpinningProperty, value); }
      }

関連

参考