wpf學習筆記 前台端資料繫結

2021-09-07 03:49:00 字數 1589 閱讀 6130

1 前端:

繫結元素屬性  

2 模型:

[serializable]

public class xmlvisitinfo:inotifypropertychanged

}private string myport

public string port

set

}}

實現inotifypropertychanged介面,實現propertychanged屬性

3 後台繫結值

xmlvisitinfo info = new xmlvisitinfo(); 

this.datacontext = info;

模型資料賦值給datacontext 

4  後台獲取值

xmlvisitinfo info = this.datacontext as xmlvisitinfo;
擴充套件知識:

wpf支援雙向繫結,即從源到目標以及目標到源,要支援雙向繫結,只需要設定binding物件的mode屬性為twoway即可,修改後的xaml**為:

當使用oneway或twoway繫結時,改變後的值會立即從源傳播到目標。然而,從目標到源傳播未必會立即發生。因為,它們的行為是由binding.updatesourcetrigger屬性控制,該屬性可以使用下圖列出的某個值。注意,updatesourcetrigger屬性值並不影響目標的更新方式,它僅僅控制twoway模式或onewaytosource模式的繫結更新源的方式。而文字框正是使用lostfocus方式從目標向源進行更新的。

上面都是介紹如何鏈結兩個元素的繫結,但是在資料驅動的應用程式中,更常見的情況是建立從乙個物件中提起資料的繫結表示式。不過希望繫結的資訊必須儲存在乙個公有屬性中。因為wpf繫結不能獲取私有資訊或公有字段。

當繫結乙個非元素物件時,不能使用binding.elementname屬性,但可以使用以下屬性中的乙個:

使用datacontext屬性來繫結乙個自定義物件的屬性。首先自定義乙個實現了inotifypropertychanged介面的類。這個介面是為了發出屬性更改的通知,即實現了這個介面將會實現當源物件的公共屬性發生改變時,該屬性的值會立即響應到介面上顯式。當然不實現這個介面的物件也可以繫結控制項中,只要被繫結是公有屬性就可以。

1 設定datagrid 名字  x:name

2 設定行名字,並繫結每一行的值

3 給datagrid賦值

iplist.itemssource = new info();
4 獲取選中值

iplist.selecteditem;
注意:所有繫結控制項,都要在初始化的時候賦乙個初值。不然無法獲取到值

完整**:

參考資料

WPF學習(19) 資料繫結

wpf有乙個特性,叫做資料驅動,我個人的理解就是把業務邏輯抽出來,變成資料,資料變化來驅動咱們的應用程式。在之前的winform時代,其實已經有了資料繫結,比如我們的datagridview,可以繫結乙個dataset,source直接繫結就可以,原理上來說類似,但是wpf由於有了依賴屬性,那麼屬性...

wpf學習筆記 資料繫結功能總結

只列功能 支援單物件繫結 可以建立資料來源範圍 datacontext 屬性更改通知 inotifypropertychanged 更改資料來源執行時間 updatesourcetrigger 集合繫結 observablecollection of t itemscontrol 多集合繫結 com...

WPF學習 繫結

原文 一。繫結到元素物件 1。元素和元素 xaml 1.1xaml格式 目標屬性 1.2 binding binding new binding binding.source 源控制項 binding.path new propertypath value 源控制項屬性 binding.mode b...