第十六章 資料繫結(六)

2021-09-20 01:25:07 字數 1343 閱讀 8383

binding類定義了乙個名為path的屬性,用於設定源屬性名稱。 但為什麼它被稱為path? 為什麼不叫財產?

path屬性被稱為它所呼叫的屬性,因為它不需要是乙個屬性。 它可以是一組屬性,子屬性,甚至是與句點相關聯的索引器。

以這種方式使用path可能很棘手,所以這裡有乙個名為bindingpathdemos的程式,它有四個binding標記擴充套件,每個擴充套件都將path引數設定為一串屬性名和索引器:

這裡只有乙個元素有乙個x:name,那就是頁面本身。 stacklayout的bindingcontext是該頁面,因此stacklayout中的所有繫結都與頁面相關(除了具有顯式source屬性集的繫結)。

第乙個binding看起來像這樣:

path以頁面的padding屬性開頭。 該屬性的型別為thickness,因此可以使用top屬性名稱訪問thickness結構的屬性。 當然,thickness是乙個結構,因此不是從bindableobject派生的,所以top不能是bindableproperty。 繫結基礎結構不能在該屬性上設定propertychanged處理程式,但它將在頁面的padding屬性上設定propertychanged處理程式,如果更改,繫結將更新目標。

第二個binding引用頁面的content屬性,即stacklayout。 stacklayout有乙個children屬性,它是乙個集合,因此它可以被索引:

children集合的索引4處的檢視是乙個slider(在標記的底部,沒有設定屬性),它具有value屬性,這就是這裡顯示的內容。

第三個binding通過使用x:static將source引數設定為靜態屬性來覆蓋其繼承的bindingcontext。 globe根目錄在根標記中定義以引用.net system.globalization命名空間,source設定為cultureinfo物件,該物件封裝了使用者手機的文化:

cultureinfo的乙個屬性是datetimeformat,它是乙個datetimeformatinfo物件,包含有關日期和時間格式的資訊,包括名為daynames的屬性,該屬性是一周中七天的陣列。 指數3選出中間指數。

system.globalization命名空間中的所有類都沒有實現inotifypropertychanged,但這沒關係,因為這些屬性的值在執行時不會更改。

最後的binding引用stacklayout的子節點,子索引為2.這是前乙個label。 它有乙個text屬性,其型別為string,string具有length屬性:

第十六章 資料繫結(二)

雖然大多數資料繫結都是在xaml中定義的,但您應該知道如何在 中執行乙個。這是在 中設定資料繫結的一種方式 但不是唯一的方法 bindingcontext屬性由bindableobject定義。它是bindableobject定義的唯一屬性。setbinding方法也由bindableobject定...

第十六章 tcp wrappers

在伺服器向外提供的tcp服務上包裝一層安全檢測機制。外來連線請求首先通過這個安全檢測,獲得安全認證後才可被系統服務接受。hosts.allow hosts.deny 在配置檔案中為各服務分別定義訪問控制規則實現訪問控制,檔案中的規則是即時生效的。配置檔案語法 1 daemon list client...

第十六章 執行緒棧

1 基礎 1 執行緒初始化時,執行緒棧預設1m,所有頁面都是page readwrite屬性,但只為前兩個頁面調撥了物理儲存器,位址低的那個頁面叫防護頁面,為其指定了page guard屬性 2 當執行緒訪問到防護頁面時,由於指定了page guard屬性,系統會得到通知,系統會為防護頁面的下乙個頁...