WPF系列 簡單繫結學習

2022-01-31 15:51:30 字數 3418 閱讀 8862

1. 繫結到元素物件.(實際專案中用處不大)

介面上兩個關聯的控制項之間繫結,比如乙個textblock 的fontsize和乙個slider 的value繫結:

<

slider

name

="sliderfonttext"

minimum

="1"

maximum

="100"

value

="10"

/>

<

textbox

name

="txtvalue"

width

="200"

text=""

/>

text的內容就是new了乙個binding物件,設定elementname,path等是繫結的屬性值.

xaml對應的c#**:

binding binding = new

binding();

binding.elementname = "

sliderfonttext";

binding.path = new propertypath("

value");

binding.updatesourcetrigger =updatesourcetrigger.propertychanged;

binding.mode =bindingmode.twoway;

txtvalue.setbinding(textbox.textproperty, binding);

刪除繫結:

bindingoperations.clearbinding(txtvalue, textbox.textproperty);

繫結後屬性的操作,如刪除繫結,獲取控制項繫結物件,都可以使用system.windows.data.bindingoperations的靜態方法.

bandingmodel列舉值介紹:

名稱說明

oneway

源屬性 -> 目標屬性(源變化引發目標變化)

twoway

源屬性 <-> 目標屬性(源變化引發目標變化且目標變化也引發源變化)

onetime

首次執行 源屬性 -> 目標屬性,後面所有變化忽略(除非顯示呼叫bindingexpress.updatetarget()或者重新繫結完全不同的物件

onewaytosource

和onetime繫結方式相反

default

依賴繫結目標屬性

updatesourcetrigger列舉值介紹:

名稱說明

propertychanged

目標屬性變化 -> 立即更新源

lostfocus

目標屬性變化 + 目標失去焦點 -> 更新源

explicit

呼叫bindingexpression.updatesource() -> 更新源

default

大部分為propertychanged,textbox.text是lostfocus

2. 繫結非介面元素

1.    繫結靜態類的靜態屬性(系統預定義和自定義方法一致,這裡演示乙個自定義):

xaml(c是 命名空間wpfdemo的別名):

<

button

content="}

"/>

c#: 

namespace wpfdemo

} }}2.繫結一般類的一般屬性

xaml:首先需要新建乙個資源物件,

建立資源物件:

<

window.resources

>

<

c:myres

x:key

="customres"

name

="自定義資源文字"

>

c:myres

>

window.resources

>

xaml繫結:

<

button

content

=",path=name}

"/>

c#:

namespace wpfdemo

}}

3. 相對繫結

xaml(這裡將stackpanel的name繫結到button的content屬性中):

<

stackpanel

x:name

="layoutroot"

>

<

button

content

="}}

"/>

stackpanel

>

relativesource 的model列舉值值:

名稱說明

self

繫結自己的另外乙個屬性

findancestor

繫結到父元素,需要設定父元素型別ancestortype和父元素層次ancestorlevel(預設為1)

previousdata

繫結到資料繫結列表的前一項

templateparent

繫結到應用模板的元素

4.datacontext繫結

<

button

content=""

datacontext="}

"/>

或者

<

stackpanel

name

="mainlayout"

datacontext="}

">

<

button

content=""

/>

stackpanel

>

binding中屬性介紹

屬性含義

elementname

是指繫結的源元素(這裡一般指介面元素)

path

源元素的繫結關聯屬性

updatesourcetrigger

更新繫結屬性的時機

model

更新繫結的方式

source

提供資料的引用

relativesource

使用乙個relativesource物件指向源物件,主要是相對資料來源繫結使用

datacontext

最重要的繫結,沒有source或者relativesource,wpf就按照元素樹向上查詢datacontext屬性,並使用第乙個非空的datacontext屬性

到這裡,基本的banding就複習完了,這裡有乙個體會就是,xaml有時候會忘記語法的寫法,其實xaml中也是由乙個乙個的物件組成,組成方式時new乙個乙個的物件,例項化方式時: .

WPF學習 繫結

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

學習WPF 元素繫結

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

學習WPF 元素繫結

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