任何人都可以解釋我在WPF中的依賴屬性是什麼,它的用途是什麼。我知道谷歌有很多關於它的教程,但他們教導如何創建一個依賴項屬性。我很困惑,我會在哪裏使用它。我的意思是我會在XAML中使用它嗎?如果有人能夠用簡單的語言來解釋我,那會很棒。依賴屬性
如果一個簡單的例子與XAML一起顯示,舉例說明如何使用該屬性,以及在使用該屬性後效果如何,那將會很好。 非常感謝您的答覆。
任何人都可以解釋我在WPF中的依賴屬性是什麼,它的用途是什麼。我知道谷歌有很多關於它的教程,但他們教導如何創建一個依賴項屬性。我很困惑,我會在哪裏使用它。我的意思是我會在XAML中使用它嗎?如果有人能夠用簡單的語言來解釋我,那會很棒。依賴屬性
如果一個簡單的例子與XAML一起顯示,舉例說明如何使用該屬性,以及在使用該屬性後效果如何,那將會很好。 非常感謝您的答覆。
列出的許多鏈接應該給你一個什麼樣依賴屬性是一個好主意,但在一般情況下,最簡單的方法去思考他們,我相信是這樣的:
依賴屬性,你需要使用什麼用戶界面元素的屬性,如果你想能夠使用WPF的數據綁定來綁定它們。爲了成爲數據綁定操作的「目標」,您需要將該屬性設置爲依賴項屬性。
當你實現一個標準類(它成爲一個「控件」的DataContext)時,你會想要使用INotifyPropertyChanged而不是DP。這允許該類成爲具有約束力的「源」。
一般來說,如果您要製作將在XAML中綁定的內容,則只需要創建依賴屬性,如UIelement的Target
。例如,假設我們有XAML這樣的:
<local:MyControl ControlProperty="{Binding SomeProperty}" />
通常情況下,ControlProperty
將是德普。屬性,因爲它是綁定目標,而SomeProperty將是一個標準的CLR屬性(不是DP),所以在實現INotifyPropertyChanged的類中。
那麼它會是什麼樣子,當姓氏從test1更改爲test2時,將字體從綠色更改爲黃色?只是一個例子.. – developer 2010-04-02 19:35:22
那麼 - 即使只是姓名顯示。以「TextBlock」控件 - 「Text」屬性爲依賴屬性,這就是爲什麼你可以這樣做:
@developer:LastName可以是一個類的普通屬性,但文本必須是DependencyProperty才能成爲綁定的「目標」 - 即:您在XAML中綁定的東西。 – 2010-04-02 19:38:06
我看到它的最佳用途是將屬性附加到不能修改的類。所以,如果你得到第三方組件,你可以附加額外的信息到課堂上,並在需要時閱讀。
這是附加屬性,它只是依賴項屬性的一種形式,通常被認爲是分開的。 – 2010-04-02 19:20:59
這可能是最簡單的文章描述DPS:
http://joshsmithonwpf.wordpress.com/2007/06/22/overview-of-dependency-properties-in-wpf/
就個人而言,我使用它們經常在我需要公開屬性,使他們可以通過XAML將數據綁定。例如,如果我在XAML中創建了一個UserControl,並且我想通過XAML在UserControl上設置一個屬性,我將它作爲依賴項屬性公開。
您要尋找的是WPF Unleashed的chapter 3。這是一個免費的樣章。
依賴項屬性不會將其值存儲在字段中,而是存儲在某個散列表中。因此它需要更少的內存,這對於GUI對象尤其重要,因爲大多數屬性將保留其默認值,因此不會佔用更多內存。儘管依賴屬性稍慢,因爲來回擺放對象並在哈希表中查找。
的依賴對象框架還允許很多樣改變通知等功能,我發現,這裏介紹的內部運作一個很好的資源:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c33a8359-58be-430d-b949-cb6e6f32d8aa
我同意的語法來聲明他們是醜了一點,但你可以創建助手來緩解這一點。
部分重複:http://stackoverflow.com/questions/2505234/need-a-short-and-clear-definition-for-dependency-properties – itowlson 2010-04-02 19:42:57