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

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

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

2019-11-11 05:29:36
字體:
來源:轉載
供稿:網友

一、概述

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

②源對象可以是任何內容,如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
国外成人在线直播| 久热99视频在线观看| 久久久久久久999精品视频| 国产精品影院在线观看| 中文字幕亚洲情99在线| 色综合伊人色综合网| 91国内免费在线视频| 中文字幕国产精品| 97人人模人人爽人人喊中文字| 国产精品一区二区性色av| 精品性高朝久久久久久久| 日本不卡高字幕在线2019| 色悠悠久久88| 久久影视电视剧凤归四时歌| 国产成人免费av| 成人h猎奇视频网站| 久久久精品国产一区二区| 国产精品欧美激情在线播放| 国产精品久久久久久av福利软件| 欧美激情一级欧美精品| 欧美性猛交xxxx偷拍洗澡| 国产精品一区二区三区久久| 日韩成人在线视频观看| 777精品视频| 欧美福利小视频| 久久国产精品首页| 色婷婷综合成人av| 亚洲理论电影网| 亚洲成人久久久久| 欧美激情极品视频| 欧美成人久久久| 国产精品第2页| 欧美在线精品免播放器视频| 色yeye香蕉凹凸一区二区av| 久久人91精品久久久久久不卡| 久久男人资源视频| 精品美女永久免费视频| 精品免费在线观看| 久久天堂av综合合色| 国产精品一区二区3区| 亚洲综合中文字幕在线| 亚洲理论在线a中文字幕| 欧美一区二三区| 在线观看亚洲视频| 国产成人免费av| 久久91亚洲精品中文字幕奶水| 中文字幕免费精品一区高清| 中国人与牲禽动交精品| 日本精品久久久久久久| 亚洲最新av在线| 尤物精品国产第一福利三区| 韩国精品美女www爽爽爽视频| 欧美电影在线播放| 久久久久久久久综合| 欧美日韩免费看| 久久久国产一区| 中文字幕精品在线视频| 欧美午夜久久久| 日韩少妇与小伙激情| 欧美大尺度在线观看| 97在线视频免费观看| 国产噜噜噜噜噜久久久久久久久| 成人性生交大片免费看视频直播| 欧美另类暴力丝袜| 91精品国产高清久久久久久久久| 亚洲精品aⅴ中文字幕乱码| 伊人久久男人天堂| 色妞一区二区三区| 亚洲欧美日韩一区二区在线| 欧美在线视频网站| 中文字幕亚洲综合| 在线观看日韩www视频免费| 中文字幕无线精品亚洲乱码一区| 亚洲国产精品悠悠久久琪琪| 国产亚洲成av人片在线观看桃| 欧美视频精品一区| 国产成人精品一区| 欧美激情一级精品国产| 欧美日韩国产成人在线| 国产日韩专区在线| 国产日韩亚洲欧美| 羞羞色国产精品| 亚洲a∨日韩av高清在线观看| 亚洲综合最新在线| 精品久久久国产| 精品久久久av| 美女久久久久久久久久久| 欧美中文字幕视频| 国产视频丨精品|在线观看| 日韩一区二区久久久| 最近2019中文字幕一页二页| 国产精自产拍久久久久久| 日韩成人在线视频观看| 国内精品久久久| 亚洲精品综合久久中文字幕| 成人免费网站在线看| 欧美—级a级欧美特级ar全黄| 成人精品视频99在线观看免费| 国产精品免费观看在线| 福利微拍一区二区| 2018中文字幕一区二区三区| www.日韩系列| 中文字幕亚洲天堂| 国产日韩中文字幕| 中文字幕av一区中文字幕天堂| 久久手机免费视频| 亚洲电影免费观看高清| 中文字幕日韩有码| 欧美日韩亚洲天堂| 亚洲娇小xxxx欧美娇小| 亚洲国产精品电影在线观看| 国产精品一二三视频| 这里只有精品视频| 日产精品久久久一区二区福利| 欧美亚洲午夜视频在线观看| 中文字幕亚洲色图| 国产精品成人免费电影| 在线看日韩av| 国产精品91久久| 性欧美长视频免费观看不卡| 欧美日本啪啪无遮挡网站| 欧美性极品少妇精品网站| 2018中文字幕一区二区三区| 欧美疯狂性受xxxxx另类| 久久久久久国产精品美女| 亚洲精品久久在线| 91免费高清视频| 黑人巨大精品欧美一区免费视频| 综合136福利视频在线| 亚洲高清av在线| 亚洲欧美日韩一区二区三区在线| 国产欧美精品日韩| 午夜精品一区二区三区视频免费看| 亚洲精品一区二区网址| 菠萝蜜影院一区二区免费| 亚洲天堂av网| 欧美激情精品久久久久久黑人| 久久久国产在线视频| 欧美激情啊啊啊| 日韩在线观看av| 国产在线视频91| 成人在线观看视频网站| 萌白酱国产一区二区| 精品av在线播放| 欧美激情在线视频二区| 欧美日韩午夜激情| 欧美成人精品三级在线观看| 国产日韩在线一区| 欧美成人h版在线观看| 亚洲欧美中文日韩v在线观看| 91免费福利视频| 欧美重口另类videos人妖| 亚洲男人av在线| 亚洲国产欧美自拍| 91久久中文字幕| 欧美日韩免费一区| 成人黄色av网| 国产日韩在线看片| 国产精品第一视频| 日本久久久久久| 91日本在线观看| 国产精品福利片| 日韩av不卡在线| 国产精品成人av在线|