由於wpf可以繫結任意的.net物件,所以只要該物件符合一定的機制和規則就可以被繫結並呈現出來。
而出於便利的目的,和之前的vs版本一樣,在資料繫結方面wpf也提供了相應的provider【儘管不是專門為關係型資料庫提供的=-=】
第一部分、xmldataprovider
這是乙個提供用於繫結xml的物件,配合資料島的相關方法進行使用,將會使得繫結xml變得很方便
1、頁面xaml的**如下:
xmlns=""
xmlns:x=""
title="window13_xmldata" height="300" width="300">15
25a、和其他資源一樣,對於乙個xmldataprovider必須要提供乙個唯一鍵用以標識。
b、繫結的時候,使用的是xpath,但是同時也是可以使用path,path主要是用於繫結物件的屬性的獲取,也就是說,在**中的xml資源實際上是乙個xmlnode或者xmlnodelist,所以可以通過path獲得這些物件的相關屬性。
c、對於一般的xpath語法在這裡都適用。
2、執行結果如下:
另外,也可以使用自動以的xml檔案作為資源,只要將該檔案新增到專案中,並設定source就可以了,例如:source=「aa.xml」這樣。
第二部分、objectdataprovider
雖然之前已經實現了對於自定義物件的資料繫結,但是在使用的時候,還是遇到一些限制,主要是來自於之前的繫結沒有辦法針對函式進行,也就是說:
a、在構造的時候沒有辦法呼叫非預設的建構函式
b、沒有辦法對於具有返回值的函式進行相關的繫結
為了解決這些問題,可以使用objectdataprovider,換言之,使用這個物件之後,可以在**中選擇使用初始化的建構函式(而不用在onload事件中更改屬性)以及可以通過事件返回相應可繫結的東西。
1、資料來源類的**如下:
2、xaml的**如下:
xmlns=""
xmlns:x=""
xmlns:sys="clr-namespace:system;assembly=mscorlib"
title="window13" height="300" width="300">
code1
name1
我是從objdata1插入的資料
其實過程比較簡單:
a、先設定乙個資料來源物件,然後再provider裡面將provider物件和資料來源物件繫結,這裡由於使用了反射,所以要指定type。
b、如果要使用建構函式,在使用相關子節點
c、如果要使用自定義函式,在使用子節點,同時要宣告methodname屬性。
在資料來源類中,這次繫結的建構函式以及自定義函式都是具有兩個或以上的過載,所以provider是根據引數的型別+數量來決定使用哪乙個。
最後,如果要使用自定義函式返回值的話,不需要宣告path,如果是使用建構函式的話,則需要宣告,因為建構函式不返回任何東西。
wpf 資料繫結
1,資料繫結的幾種方式 重點解釋以下幾點 1,目標物件的屬性是依賴項屬性.2,對於default方式,當目標屬性可以設定時,則是雙向繫結,否則是單向繫結.2,使用 繫結和解除繫結 binding binding new binding binding.source silderfontsize 繫結...
WPF資料繫結 用XAML繫結
用xaml繫結 wpf元素不僅是資料繫結的目標,它還可以是繫結的源。可以把乙個wpf元素的源屬性繫結到另乙個wpf元素的目標屬性上。elementname指向繫結源,path指向源屬性 此處checkbox為繫結源,ischecked為源屬性,label為目標 除了用xaml 定義繫結資訊之外,還可...
WPF資料繫結(二)
前面講了最近本的兩種資料繫結,這次講講資源繫結和context繫結 1 資源繫結 同樣不需要寫 僅僅需要配置xaml就可以了。1 tabitem header resourcebinding 2 stackpanel 3 stackpanel.resources 4 sys string x key...