WPF屬性 一 依賴屬性

2021-09-19 21:55:53 字數 1278 閱讀 5187

原文:

wpf屬性(一)依賴屬性

依賴屬性是一種可以自己沒有值,並能通過使用binding從資料來源獲得值的屬性,擁有依賴屬性的物件稱為依賴物件,在傳統開發中,乙個物件所占用的內存在呼叫new操作符進行例項化的時候就已經決定了,而wpf允許物件在被建立的時候並不包含用於儲存資料的空間,只保留在需要用到資料時能夠獲得預設值、借用其他物件資料或實時分配空間的能力,這種物件就是依賴物件,而這種實時獲取資料的能力就是靠依賴屬性來實現。

wpf中,依賴物件的型別是dependencyobject,依賴屬性的型別是dependencyproperty,dependencyobject具有getvalue和setvalue兩個方法:

public object getvalue(dependencyproperty dp)

public void setvalue(dependencyproperty dp, object value)

wpf中所有的控制項都是依賴物件,依賴屬性必須以依賴物件為宿主,借助它的setvalue和getvalue方法進行寫入與讀取,因此,想使用自定義的依賴屬性,宿主一定是依賴物件的派生類,依賴屬性有public static readonly三個修飾符修飾,例項使用dependencyproperty.register方法生成,例如:

public static readonly dependencyproperty nameproperty = dependencyproperty.register("name", typeof(string), typeof(student));

依賴物件可以通過binding依賴在其他物件上,即依賴物件是作為資料的目標而存在,所以需要為依賴物件的依賴屬性新增了clr屬性包裝,有了這個包裝,就相當於為依賴物件準備了用於暴露資料的binding path

public int myproperty

set

}

還可以自定義乙個setbinding方法用於簡化繫結操作

public bindingexpressionbase setbinding(dependencyproperty dp, bindingbase binding)

有乙個小技巧,需要申明乙個依賴屬性並使用clr屬性封裝時,只需要輸入propdp,vs就會給出乙個提示,連按兩次tab鍵,乙個標準被依賴屬性就申明好了,繼續按tab鍵,可以修改依賴屬性的各個引數。

WPF 依賴屬性

原文 wpf 依賴屬性 屬性和事件是.net抽象模型的核心部分,wpf在這之上增加了dependency property 依賴屬性 依賴屬性使用更高效的儲存機制,並且支援附加的功能,更改通知 屬性值繼承 在元素樹中向下傳播預設屬性值 以及減少屬性儲存空間。依賴屬性是wpf動畫 資料繫結和樣式的基礎...

WPF依賴屬性

依賴屬性是一種可以自己沒有值,並能通過使用binding從資料來源獲取值 依賴在別人身上 的屬性。優點 wpf的所有控制項都是依賴屬性。依賴物件被dependencyobject類實現,依賴屬性由dependencyproperty類實現。dependencyobject有getvalue setv...

WPF 依賴屬性

屬性是我們再熟悉不過的了,那麼究竟依賴屬性怎麼寫呢?依賴屬性和屬性到底有什麼區別和聯絡呢?其實依賴屬性的實現很簡單,只要做以下步驟就可以實現 第一步 讓所在型別繼承自 dependencyobject基類,在wpf中,我們仔細觀察框架的類圖結構,你會發現幾乎所有的 wpf 控制項都間接繼承自depe...