依賴屬性

依賴屬性與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

對回調的引用,除了典型的類型驗證之外,該引用還應執行依賴項對象值的任何自定義驗證。

依賴屬性提供的屬性功能

資源

依賴項屬性值可以通過引用資源來設定。<Window.Resources> <!--資源--> <sys:String x:Key="text">text_Resources</sys:String> </Window.Resources> <Grid> <!--Text屬性引用資源--> <MyTextBox:MyTextBox x:Name="myTextBox" HorizontalAlignment="Left" Height="44" Margin="70,81,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="213" Text="{DynamicResource text}"/> </Grid>

相關詞條

熱門詞條

聯絡我們