WPF 資料繫結例項一

2022-06-05 11:36:09 字數 2666 閱讀 7461

前言:

資料繫結的基本步驟:

(1)先宣告乙個類及其屬性

(2)初始化類賦值

(3)在c#**中把控制項datacontext=物件;

(4)在介面設計裡,控制項給要繫結的屬性

原理:監聽事件機制,介面改變有textchanged之類的事件,所以改變介面可以同步修改到物件

想讓普通物件實現資料繫結,需要實現inotifypropertychanged介面才能監聽properchanged。具體**如下顯示:

class person:inotifypropertychanged

set}}}

bindingmode列舉值

名稱說明

oneway

當源屬性變化時更新目標屬性

twoway

當源屬性變化時更新目標屬性,當目標屬性變化時更新源屬性

onetime

最初根據源屬性設定目標屬性,其後的改變會忽略。

onewaytosource

與oneway型別相似,但方向相反。

default

此類繫結依賴於目標屬性

updatesourcetrigger

名稱說明

default

預設值,與依賴屬性有關

explicit

必須在顯示地呼叫bindingexpression.updatesource的情況下才更新源。

lostfocus

控制項失去焦點的時候更新源值

propertychanged

繫結的目標值改變時更新。

例項執行後介面如下:

thread.sleep()是同步延遲,task.delay()是非同步延遲。

thread.sleep()會阻塞執行緒,task.delay()不會。

thread.sleep()不能取消,task.delay()可以。

task.delay()實質建立乙個執行給定時間的任務,thread.sleep()使當前執行緒休眠給定時間。

反編譯task.delay(),基本上講它就是個包裹在任務中的定時器。

task.delay()和thread.sleep()最大的區別是task.delay()旨在非同步執行,在同步**中使用task.delay()是沒有意義的;在非同步**中使用thread.sleep()是乙個非常糟糕的主意。通常使用await關鍵字呼叫task.delay()。

我的理解:task.delay(),async/await和cancellationtokensource組合起來使用可以實現可控制的非同步延遲。

mainwindow.xaml.cs

using system;

using system.collections.objectmodel;

using system.componentmodel;

using system.threading.tasks;

using system.windows;

; task.run(async() => //開啟非同步執行緒task

;});

});

this.datacontext = new student() ;

}private void btnctrl1_click(object sender, routedeventargs e)

; //例項化乙個student類 並給類成員賦值

this.datacontext = stu;//將例項化得物件傳給datacontext

}private void btnctrl2_click(object sender, routedeventargs e)

,new student() ,

};this.listbox1.itemssource = stulist;

this.listbox2.itemssource = stulist;

this.listbox2.displaymemberpath = "name";

this.datacontext = stulist;}}

public class student : inotifypropertychanged //建立乙個繼承自inotifypropertychanged的類student

入門 WPF資料繫結 例項

binding物件的屬性 property description converter 轉換器elementname 繫結的源物件 fallbackvalue 繫結無法返回有效值時的預設顯示。mode 繫結方式 path屬性 relativesource 常用於自身繫結或者資料模板中來指定繫結的源物...

Wpf 資料繫結例項2

1.簡單datacontext繫結 繫結物件 label.datacontext process.getcurrentprocess xaml grid grid.columndefinitions columndefinition width 24 columndefinition width 4...

wpf 資料繫結

1,資料繫結的幾種方式 重點解釋以下幾點 1,目標物件的屬性是依賴項屬性.2,對於default方式,當目標屬性可以設定時,則是雙向繫結,否則是單向繫結.2,使用 繫結和解除繫結 binding binding new binding binding.source silderfontsize 繫結...