2010-06-07 128 views

回答

8

聲明爲靜態字段僅僅是一個依賴屬性的標識,而不是值的屬性。它在類的所有實例中共享,並用於獲取/設置每個實例的屬性值。

+0

我有一些使DP爲靜態的要求,因爲我想跨所有實例共享它。可能嗎? – 2012-06-30 18:53:22

+0

@ RV1987,它沒有任何意義......如果你想這樣做,不要使用DP,只需使用靜態CLR屬性 – 2012-07-08 21:41:23

+0

@ThomasLevesque:嚴重的我無法理解你的語句的含義或理由什麼你試圖說。我雖然是新手,並不理解你的話。爲什麼我們應該爲每個實例設置價值,如果它是靜態的。靜態意味着它在整個程序生命週期中的一次調用。 – Learner 2013-10-18 05:08:26

12

當您聲明DependencyProperty時,聲明該屬性的定義,而不是該屬性值的存儲空間(正如常規屬性聲明的情況)。整個類的屬性只有一個定義 - 而不是每個類的一個實例定義 - 所以它是靜態的。

+0

哪裏存儲呢? – zinking 2013-06-21 10:24:39

+5

具有'DependencyProperty'的任何對象都來自類型'DependencyObject'。一個「DependencyObject」的實例包含一個屬性包 - 實質上是一個映射爲值的屬性名稱的字典 - 並且設置的任何「DependencyProperty」的值都存儲在該包中。 – 2013-06-21 10:30:30