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...