依賴屬性與CLR屬性
- 依賴屬性支持CLR屬性
- 依賴項屬性的用途在於提供一種方法來基於其他輸入的值計算屬性值。 這些其他輸入可以包括系統屬性(如主題和用戶首選項)、實時屬性確定機制(如數據綁定和動畫/演示圖板)、重用模板(如資源和樣式)或者通過與元素樹中其他元素的父子關係來公開的值。 另外,可以通過實現依賴項屬性來提供獨立驗證、默認值、監視其他屬性的更改的回調以及可以基於可能的運行時信息來強制指定屬性值的系統。 派生類還可以通過重寫依賴項屬性元數據(而不是重寫現有屬性的實際實現或者創建新屬性)來更改現有屬性的某些具體特徵。
- 如何區分依賴屬性與CLR屬性:在屬性的MSDN幫助文檔中,假如該屬性為依賴屬性,在屬性說明中會有依賴項屬性信息說明,如下(TextBox.Text):
定義依賴屬性
//依賴屬性名稱MyTextProperty //依賴屬性標識符MyText public static readonly DependencyProperty MyTextProperty = DependencyProperty.Register("MyText", typeof(string), typeof(MyTextBox)); //依賴屬性的CLR屬性包裝 public string MyText { get { return (string)GetValue(MyTextProperty); } set { SetValue(MyTextProperty, value); } }Register 方法 參數說明
name | 要註冊的依賴項對象的名稱。 |
propertyType | 屬性的類型。 |
ownerType | 正註冊依賴項對象的所有者類型。 |
typeMetadata | 依賴項對象的屬性元數據。 |
validateValueCallback | 對回調的引用,除了典型的類型驗證之外,該引用還應執行依賴項對象值的任何自定義驗證。 |