DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) DependencyObject.InvalidateProperty(DependencyProperty) Method

定義

指定した依存関係プロパティの有効値を再評価します。Re-evaluates the effective value for the specified dependency property

public:
 void InvalidateProperty(System::Windows::DependencyProperty ^ dp);
public void InvalidateProperty (System.Windows.DependencyProperty dp);
member this.InvalidateProperty : System.Windows.DependencyProperty -> unit
Public Sub InvalidateProperty (dp As DependencyProperty)

パラメーター

dp
DependencyProperty DependencyProperty DependencyProperty DependencyProperty

無効にするプロパティの DependencyProperty 識別子。The DependencyProperty identifier of the property to invalidate.

次の例ではInvalidatePropertyカスタム プロパティをされるたびに、無効化されたプロパティの計算に関連するプロパティを変更します。The following example calls InvalidateProperty on a custom property, whenever properties that are involved in the invalidated property's calculations change. これは、呼び出し元に別の手法、CoerceValueメソッド、プロパティを無効には、呼び出されますもために登録CoerceValueCallbackします。This is an alternative technique to calling the CoerceValue method, because invalidating the property will also call any registered CoerceValueCallback.

static AreaButton()
{
    WidthProperty.OverrideMetadata(typeof(AreaButton), new FrameworkPropertyMetadata(new PropertyChangedCallback(InvalidateAreaProperty)));
    HeightProperty.OverrideMetadata(typeof(AreaButton), new FrameworkPropertyMetadata(new PropertyChangedCallback(InvalidateAreaProperty)));
}
static void InvalidateAreaProperty(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    d.InvalidateProperty(AreaProperty);
}
Shared Sub New()
	WidthProperty.OverrideMetadata(GetType(AreaButton), New FrameworkPropertyMetadata(New PropertyChangedCallback(AddressOf InvalidateAreaProperty)))
	HeightProperty.OverrideMetadata(GetType(AreaButton), New FrameworkPropertyMetadata(New PropertyChangedCallback(AddressOf InvalidateAreaProperty)))
End Sub
Private Shared Sub InvalidateAreaProperty(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
	d.InvalidateProperty(AreaProperty)
End Sub

注釈

呼び出すとInvalidateProperty、any 関連付けられている、該当するCoerceValueCallbackまたはPropertyChangedCallback関数は、その依存関係プロパティが呼び出されるを登録します。When you call InvalidateProperty, any associated and applicable CoerceValueCallback or PropertyChangedCallback functions registered for that dependency property might be invoked.

呼び出すInvalidatePropertyをローカルの値の設定を持つプロパティでは効果がありません、ため、ローカルの値のアニメーションを除く、他のプロパティ システム入力よりも優先されます。Calling InvalidateProperty on a property that has its local value set will have no effect, because the local value takes precedence over other property system inputs, except for animations. ただし、呼び出すことができますClearValue、呼び出してInvalidatePropertyします。However, you could call ClearValue, then call InvalidateProperty. 詳細については、「依存関係プロパティ値の優先順位」を参照してください。For more information, see Dependency Property Value Precedence.

呼び出すInvalidatePropertyは依存関係プロパティの多くのシナリオに必ずしも適用されません。Calling InvalidateProperty is not necessarily applicable for many dependency property scenarios. 依存関係プロパティが、構成要素のいずれかの値の変更のため無効になった場合、プロパティ システムは無効にし、依存関係プロパティを自動的に再評価します。If a dependency property becomes invalidated because of value changes in any of the constituents, the property system invalidates and re-evaluates the dependency property automatically. ただし、シナリオは、まだいくつか適切な場所InvalidateProperty役に立ちます。However, there are still some appropriate scenarios where InvalidateProperty is useful. 具体的には、使用することができますInvalidateProperty強制値またはプロパティ内でさまざまな依存関係プロパティのコールバックを変更します。In particular, you can use InvalidateProperty inside the coerce value or property changed callback for a different dependency property. 使用することもInvalidateProperty推奨を実装するようになっているデータ ソースに対して、バインドの再評価を強制するINotifyPropertyChanged通知メカニズム (おそらくから派生できませんをまたはデータが静的なデータ クラスを使用している場合メンバーの場合)。You can also use InvalidateProperty to force re-evaluation of a binding against a data source that is not able to implement the recommended INotifyPropertyChanged notification mechanism (perhaps if consuming data classes that cannot be derived from, or where the data is a static member).

適用対象

こちらもご覧ください