18 WPF 元素繫結

2022-01-14 13:32:50 字數 2240 閱讀 7576

繫結具有四個組成部分:

被繫結目標屬性必須是依賴項屬性 

<

stackpanel

>

<

slider

name

="slider"

width

="300"

value

="10"

minimum

="0"

maximum

="30"

tickfrequency

="1"

issnaptotickenabled

="true"

tickplacement

="topleft"

>

slider

>

<

label

name

="lable"

fontsize=""

>hello

label

>

stackpanel

>

元素繫結 使用

這種方式比valuechanged事件要簡單

資料繫結的乙個特性是目標會被自動更新,而不考慮元的修改方式

<

button

name

="btn"

click

="btn_click"

width

="80"

height

="30"

/>

private

void btn_click(object

sender, routedeventargs e)

*注意:如果在繫結了元素的情況下對lable進行字型設定

private

void btn_click(object

sender, routedeventargs e)

這將會使元素繫結失效,怎麼滑動lable都不會再發生變化

解決辦法,可以通過雙向繫結的方式進行繫結

<

label

name

="lable"

fontsize=""

>hello

label

>

mode的值

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

twoway 雙向更新

onewaytosource 在目標屬性更改時,更新源屬性

onetime  僅當應用程式啟動時或 datacontext 進行更改時更新目標屬性???

default  預設以上方式中的一種

binding binding = new

binding();

binding.source =slider;

binding.path = new propertypath("

value");

binding.mode =bindingmode.twoway;

lable.setbinding(label.fontsizeproperty, binding);

取消繫結

private

void btn_click(object

sender, routedeventargs e)

一般使用xaml的方式繫結,但當建立動態繫結或刪除繫結時需要用**的方式。

private

void btn_click(object

sender, routedeventargs e)

反向從目標到源的改變不一定會立即發生,

binding binding = new

binding();

binding.updatesourcetrigger = updatesourcetrigger.propertychanged;

或者

"

lable

" fontsize="

">hello

避免頻繁操作,延遲500毫秒

"

lable

" fontsize="

">hello

繫結到提供資料的物件

根據相對於目標物件的關係指向源物件 

將大量元素繫結到同乙個物件 

學習WPF 元素繫結

概念 從源物件提取一些資訊,並用這些資訊設定目標物件的屬性 示例 在給textblock控制項的fontsize屬性賦值時,我們使用了繫結表示式 資料繫結表示式使用xaml的標記擴充套件 因此具有花括號 參見 這裡建立了乙個system.windows.data.binding物件,所以繫結表示式以...

WPF元素繫結筆記

利用元素到元素的繫結實現互動方式的自動化 表示式繫結中,path 可以指向屬性,也可以指向屬性使用的索引器 如content.children 0 可構建具有多級層次的路徑,使其指向屬性的屬性,以此類推 繫結錯誤不會報出異常,但是輸出視窗會有提示 繫結模式 源物件 目標物件 oneway 目標物件 ...

學習WPF 元素繫結

概念 從源物件提取一些資訊,並用這些資訊設定目標物件的屬性 示例 在給textblock控制項的fontsize屬性賦值時,我們使用了繫結表示式 資料繫結表示式使用xaml的標記擴充套件 因此具有花括號 參見 這裡建立了乙個system.windows.data.binding物件,所以繫結表示式以...