亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

第8章 元素綁定(1)——概述、創建設置綁定和綁定到非元素對象

2019-11-11 06:03:34
字體:
來源:轉載
供稿:網友

一、概述

①簡單地說,數據綁定就是將源對象的屬性綁定到目標對象的屬性。

②源對象可以是任何內容,如WPF元素、ADO.NET對象或自行創建的純數據對象。

③數據綁定的最簡單情形是元素綁定,即源對象是WPF元素而且源屬性是依賴項屬性。因為依賴項屬性具有內置的更改通知支持。因此,當在源對象中改變依賴項屬性的值時,會立即更新目標對象中的綁定屬性。

二、綁定表達式

<TextBlock Margin="10" Name="lblSampleText"     FontSize="{Binding ElementName=sliderFontSize, Path=Value}"    Text="Simple Text"></TextBlock>①綁定表達式使用XAML標記擴展(因此具有花括號)。②綁定表達式以單詞Binding開頭。元素到元素的綁定需配置兩個屬性:ElementName屬性(指示源元素)和Path屬性(指示源元素中的屬性)。

三、綁定錯誤

當指定的元素或屬性不存在時,WPF不會報錯,只是不能在目標屬性中顯示數據。

四、綁定模式

綁定模式有五種,如下圖。在應用時推薦明確設置綁定模式。

五、使用代碼創建綁定

①在XAML標記中使用Binding標記擴展來聲明綁定表達式通常最高效。然而也可以用代碼創建綁定。

Binding binding = new Binding();binding.Source = sliderFontSize;binding.Path = new PRopertyPath("Value");binding.Mode = BindingMode.TwoWay;lblSampleText.SetBinding(TextBlock.FontSizeProperty, binding);②可以通過BindingOperation類的兩個靜態方法移除綁定。

ClearBinding()方法移除具體元素的具體依賴項屬性的綁定

BindingOperations.ClearBinding(lblSampleText, TextBlock.FontSizeProperty);ClearAllBindings()方法移除具體元素的所有綁定
BindingOperations.ClearAllBindings(lblSampleText);③不管是通過代碼創建的綁定,還是通過XAML標記創建的綁定,都可以使用上面兩個方法刪除綁定。④通過代碼創建綁定主要有以下應用場景:

A:創建動態綁定

B:刪除綁定

C:創建自定義控件(為了讓他人更容易地修改自定義控件的外觀,需要將特定細節(如事件處理程序和數據綁定表達式)從標記移到代碼中。

六、使用代碼檢索綁定

可使用代碼檢索綁定并檢查其屬性,而不必考慮綁定最初是用代碼還是標記創建的。有兩種方式:

①通過BindingOperations.GetBinding()來檢索對應的Binding對象。

假如有如下綁定:

<TextBlock Margin="10" Name="lblSampleText"     FontSize="{Binding ElementName=sliderFontSize, Path=Value, Mode=TwoWay}"    Text="Simple Text"></TextBlock>可使用以下代碼獲取綁定:
Binding binding = BindingOperations.GetBinding(txtBound, TextBox.TextProperty);通過綁定對象就可以查看其屬性:

binding.ElementName:綁定源對象的名稱

binding.Path:從綁定源對象提取的對應屬性的值

binding.Path.Path:獲取綁定源對象的綁定屬性名稱

binding.Mode:用于告知綁定何時更新目標元素②通過BindingOperations.GetBindingExpression()方法獲取更實用的BindingExpression對象

BindingExpression expression = BindingOperations.GetBindingExpression(txtBound, TextBox.TextProperty);

通過BindingExpression對象可以查看如下屬性:

expression.ResolvedSource:獲取綁定對象的引用

expression.ResolvedSourcePropertyName:獲取綁定源對象的綁定屬性名稱七、綁定更新和綁定延遲

①建立綁定后源對象屬性的變化會立即影響目標屬性,然而,反方向的變化,即從目標到源不會立即發生。它受綁定的UpdateSourceTrigger屬性控制。

②上圖中列出的值不影響源到目標的更新,他僅能控制TwoWay或OneWayToSource模式中目標到源的更新。

③通過設置綁定的Delay屬性可以延遲更新

<TextBox Name="txtBound"     Text="{Binding ElementName=lblSampleText, Path=FontSize, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Delay=500}    " Width="100"></TextBox>八、綁定到非元素對象①綁定到非元素對象時,只需要將綁定中的ElementName屬性換成以下三個屬性中的一個即可:

Source:指向數據對象

RelativeSource:可根據相對于目標對象的關系指向源對象(通過該屬性可將元素綁定到自身或其父元素)。多用于編寫控件模版或數據模版。

DataContext:如果綁定中沒有使用Source或RelativeSource屬性指定源,WPF就從當前元素開始在元素樹中國向上查找。檢查每個元素的DataContext屬性,并使用第一個非空的DataContext屬性。一般用于將大量元素綁定到同一個對象。

DataContext實例代碼:

<StackPanel Margin="10" DataContext="{x:Static SystemFonts.IconFontFamily}">    <TextBlock Margin="5" Text="{Binding Path=Source}"></TextBlock>    <TextBlock Margin="5" Text="{Binding Source={x:Static SystemFonts.IconFontFamily}, Path=LineSpacing}"></TextBlock>    <TextBlock Margin="5" Text="{Binding Source={x:Static SystemFonts.IconFontFamily}, Path=FamilyTypefaces[0].Style}"></TextBlock>    <TextBlock Margin="5" Text="{Binding Source={x:Static SystemFonts.IconFontFamily}, Path=FamilyTypefaces[0].Weight}"></TextBlock>    <TextBlock Margin="5" Text="{Binding Source={StaticResource CustomFont}, Path=Source}"></TextBlock></StackPanel>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品综合视频| 国产丝袜精品第一页| 欧美精品videosex极品1| 亚洲精品国产福利| 成人观看高清在线观看免费| 欧美日韩中文字幕综合视频| 成人欧美一区二区三区黑人| 不卡伊人av在线播放| 欧美日韩国产91| 国产精品白丝jk喷水视频一区| 亚州国产精品久久久| 青青久久aⅴ北条麻妃| 精品中文字幕在线| 68精品久久久久久欧美| 日本免费一区二区三区视频观看| 久久久精品国产| 成人福利视频在线观看| 91国内产香蕉| 日韩中文字幕视频| 青青久久av北条麻妃黑人| 久久青草福利网站| 国产网站欧美日韩免费精品在线观看| 最近2019中文字幕mv免费看| 欧美日韩一区二区在线播放| 久久精品人人爽| 欧美日韩在线另类| 2019av中文字幕| 欧美福利视频在线| 国产一级揄自揄精品视频| 国产剧情日韩欧美| 日韩在线视频网| 亚洲精品国精品久久99热| 国产+人+亚洲| 国产精品成人观看视频国产奇米| 亚洲成年网站在线观看| 欧美日韩成人在线视频| 久久久久久久爱| 狠狠躁夜夜躁人人躁婷婷91| 夜夜狂射影院欧美极品| 欧美怡春院一区二区三区| 精品国产乱码久久久久酒店| 久久久久久伊人| 亚洲成年人在线| 久久欧美在线电影| 欧美性xxxx极品高清hd直播| 久久久www成人免费精品| 国产精品一二区| 奇米四色中文综合久久| 国产精品视频久| 国产精品三级久久久久久电影| 国产精品入口夜色视频大尺度| 国产美女91呻吟求| 久久综合九色九九| 91精品国产91久久久久| 国产精品直播网红| 成人h片在线播放免费网站| 国产精品视频xxxx| 国产丝袜精品视频| 俺也去精品视频在线观看| 中文字幕av一区中文字幕天堂| 亚洲第一福利视频| 久久久亚洲欧洲日产国码aⅴ| 国产91久久婷婷一区二区| 亚洲成人动漫在线播放| 九色成人免费视频| 亚洲一区亚洲二区| 日韩在线免费视频| www.久久草.com| 成人欧美一区二区三区黑人| 日韩电视剧在线观看免费网站| 国产精品一区二区三区毛片淫片| 欧洲亚洲免费在线| 亚洲qvod图片区电影| 亚洲精品国产精品久久清纯直播| 91tv亚洲精品香蕉国产一区7ujn| 久久久久久久一| 北条麻妃在线一区二区| 欧美精品做受xxx性少妇| 亚洲性生活视频在线观看| 97人人做人人爱| 欧美日韩一区二区免费在线观看| 国产视频在线观看一区二区| 日韩不卡中文字幕| 欧美国产中文字幕| 成人黄色大片在线免费观看| 91夜夜揉人人捏人人添红杏| 国产精品视频永久免费播放| www.色综合| 亚洲图中文字幕| 国产精品一区二区三区在线播放| 精品久久久久久久大神国产| 国产美女精品免费电影| 欧美性极品xxxx娇小| 国产精品亚洲激情| 欧美高清理论片| 欧美成人激情在线| 国产亚洲精品久久久| 久久色免费在线视频| 色噜噜久久综合伊人一本| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产有码一区二区| 欧美激情在线狂野欧美精品| 97久久精品人搡人人玩| 欧美一级片一区| 久久色在线播放| 91精品国产91久久久久久吃药| 亚洲精品mp4| 国产精品自拍偷拍视频| 亚洲裸体xxxx| 亚洲国产中文字幕在线观看| 97精品国产97久久久久久| 欧美日韩精品在线播放| 国产精品国内视频| 国产精品日韩精品| 亚洲香蕉av在线一区二区三区| 一本一本久久a久久精品牛牛影视| 精品电影在线观看| 欧美激情精品久久久久久久变态| 亚洲男女自偷自拍图片另类| 色妞色视频一区二区三区四区| 中文字幕久久久| 午夜精品视频在线| 久久九九有精品国产23| 亚洲人成电影在线播放| 成人在线精品视频| 欧美性xxxxx极品| 国产91在线播放九色快色| 欧美激情亚洲另类| 日本国产一区二区三区| 亚州国产精品久久久| 久久精品一区中文字幕| 亚洲a成v人在线观看| 亚洲国产精品国自产拍av秋霞| 黑人精品xxx一区| 富二代精品短视频| 日本久久久久亚洲中字幕| 亚洲第一精品电影| 中文字幕日韩精品有码视频| 高清欧美性猛交| 奇米4444一区二区三区| 亚洲午夜国产成人av电影男同| 亚洲激情在线观看视频免费| 国产精品免费久久久久影院| 国产日韩在线一区| 亚洲色图18p| 国产一级揄自揄精品视频| 青草青草久热精品视频在线观看| 亚洲性线免费观看视频成熟| 国产激情综合五月久久| 久久影视电视剧凤归四时歌| 日韩精品视频在线免费观看| 亚洲成色777777女色窝| 国产亚洲精品久久久久动| 欧美精品久久久久久久| 久久久久久亚洲精品不卡| 国产+成+人+亚洲欧洲| 亚洲精品福利视频| 国产精品久久久久久久久久99| 欧美精品免费看| 国产主播欧美精品| 亚洲三级 欧美三级| 亚洲国产精品中文| 在线观看欧美成人| 久久这里只有精品99|