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 = newbinding();
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物件,所以繫結表示式以...