2011-10-03 50 views
2

Silverlight中依賴屬性的特性是什麼?我搜索了很多網站,但我不會對此有一個清晰的想法。任何人都可以讓我知道在什麼情況下,這個依賴屬性可以在Silverlight中使用。何時使用WP7/Silverlight中的依賴屬性

回答

10

以下是簡單的經驗法則。如果您正在創建控件(UserControl或自定義模板控件),請使用依賴項屬性添加新屬性。否則,很難創建從DependencyObject派生的模型或視圖模型類,您只需使用標準屬性,也可以使用INotifyPropertyChanged的實現。

依賴屬性是數據綁定的基礎。您不能在未實施爲DependencyProperty的屬性上使用數據綁定。由於類似的原因,如果要使用Storyboard動畫進行動畫,則需要將屬性執行爲DependencyPropertry

+0

嗨安東尼。是否有任何直接關係黑白附加屬性和DependencyProperty?他們在哪些方面有所不同? –

+1

@Stephan:是的,他們有非常類似的東西。大多數情況下,依賴項屬性被分配給其聲明的類。而__attached__ propery專門用於附加到另一個類型的實例,而不是其聲明的實例。這允許將附加功能嫁接到完全不瞭解新功能的對象上。例如。 'Canvas.Left'允許一個包含畫布放置一個'UIElement','UIEement'本身對此不知道。 – AnthonyWJones

+0

@AnthonyWJones:上次去午餐前提交..並且忽略修改:( –

0

當您創建一個UserControl。如果你的財產是一個正常的公共財產那樣:

public Double MyProperty 
{ 
    get; 
    set; 
} 
  1. 您將無法將樣式應用到屬性。

  2. 您將無法在故事板中應用基於該屬性的動畫。

+0

關於第1點,我認爲你可以設置屬性,但是你將無法將它設置爲「 {綁定}' - 僅限於靜態值 –

+0

嘿,你是對的!我會刪除它,謝謝你通知我 – danbord