DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs) 方法

定義

每當這個 DependencyObject 上任何相依性屬性的有效值已更新時叫用。 已變更的特定相依性屬性會在事件資料中報告。

protected:
 virtual void OnPropertyChanged(System::Windows::DependencyPropertyChangedEventArgs e);
protected virtual void OnPropertyChanged (System.Windows.DependencyPropertyChangedEventArgs e);
abstract member OnPropertyChanged : System.Windows.DependencyPropertyChangedEventArgs -> unit
override this.OnPropertyChanged : System.Windows.DependencyPropertyChangedEventArgs -> unit
Protected Overridable Sub OnPropertyChanged (e As DependencyPropertyChangedEventArgs)

參數

e
DependencyPropertyChangedEventArgs

將包含重要相依性屬性的識別項、類型之屬性中繼資料,以及新舊值的事件資料。

備註

這個方法並非一般會偵測個別的屬性變更,或根據大小寫執行屬性的失效。 OnPropertyChanged 相反地,如果已知有關各種屬性分類的特定資訊,則會改為用於修改一般失效模式。 例如,中的 Freezable 變更可能是 的 Freezable 實值型別變更,或可能是子屬性,其中變更位於其他 Freezable 參考內。 的 Freezable 覆寫實作 OnPropertyChanged 會使用內部資訊來判斷屬性是否為子屬性,並為任一案例提供適當的基類邏輯。

OnPropertyChanged 在物件的存留期間,可能會多次叫用 。 因此,如果您覆寫特定屬性的中繼資料,然後附加 CoerceValueCallbackPropertyChangedCallback 函式以取得個別屬性,則可以達到整體屬性系統更好的效能。 不過,如果 DependencyObject 包含大量值相互關聯的相依性屬性,或包含必須針對數個屬性失效相關案例重新執行的轉譯行為之類的邏輯,您可以使用這個方法。

給繼承者的注意事項

一律呼叫基底實作。 若無法這麼做,將會大幅停用整個 WPF 屬性系統,導致報告不正確的值。

適用於

另請參閱