依賴屬性(DependencyProperty)是UWP的核心概念,它是有DependencyObject提供的一種特殊的屬性。由于UWP的幾乎所有UI元素都是集成于DependencyObject的FramewordElement,并且這些UI元素的幾乎所有屬性及它們出現(xiàn)在XAML中的幾乎所有屬性都是依賴屬性,所以可以說(shuō)依賴屬性是專門為UI設(shè)計(jì)的屬性系統(tǒng)。

依賴屬性的定義:

/// <summary>/// 獲取或設(shè)置Title的值/// </summary>  public string Title{
    get { return (string)GetValue(TitleProperty); }
    set { SetValue(TitleProperty, value); }}/// <summary>/// 標(biāo)識(shí) Title 依賴屬性。/// </summary>public static readonly DependencyProperty TitleProperty =
    DependencyProperty.Register("Title", typeof(string), typeof(MyPage), new PropertyMetadata(string.Empty));

如上述代碼所示,和CLR屬性不同依賴屬性需要定義TitleProperty ,然后在屬性包裝器(Getter和Setter)中通過(guò)GetValue和SetValue函數(shù)操作屬性值。

2. 使用的場(chǎng)景

UWP的依賴屬性經(jīng)過(guò)大幅簡(jiǎn)化(相對(duì)于WPF),更關(guān)注它的核心功能:使用綁定,通過(guò)多個(gè)輸入計(jì)算屬性值,屬性值變化通知,節(jié)約內(nèi)存使用。

2.1 綁定

通過(guò)屬性包裝器,依賴屬性可以像CLR屬性那樣使用,也可以在XAML中通過(guò)綁定來(lái)使用,這是CLR屬性不能提供的功能。

在XAML中使用:

<TextBlock x:Name="TextElement"
            Text="{Binding Title}
        
		

網(wǎng)友評(píng)論