一、WPF數據綁定的概要
數據綁定:是應用程序 UI 與業務邏輯之間建立連接的過程。 如果綁定正確設置并且數據提供正確通知,則當數據的值發生更改時,綁定到數據的視覺元素會自動反映更改。 數據綁定可能還意味著如果視覺元素中數據的外部表現形式發生更改,則基礎數據可以自動更新以反映更改。
例如:如果用戶編輯 TextBox 元素中的值,則基礎數據值會自動更新以反映該更改。
1. 數據綁定涉及到兩個方面:
一個是綁定源,一個是綁定目標。綁定源即控件綁定所使用的源數據,綁定目標即數據顯示的控件。
2. 對于綁定源,在WPF可以是以下四種:
•CLR對象:可以綁定到CLR類的公開的屬性、子屬性、索引器上。
•ADO.Net對象:例如DataTable、DataView等 。
•XML文件:使用XPath進行解析 。
•DependencyObject:綁定到其依賴項屬性上,即控件綁定控件 。
對于綁定目標,必須是WPF中的DependencyObject,將數據綁定到其依賴項屬性上。
二、 綁定的模式
1. 根據數據流的方向,WPF中的數據綁定分為以下四種:
OneWay 綁定:對源屬性的更改會自動更新目標屬性,但是對目標屬性的更改不會傳播回源屬性。此綁定類型適用于綁定的控件為隱式只讀控件的情況。
TwoWay 綁定:對源屬性的更改會自動更新目標屬性,而對目標屬性的更改也會自動更新源屬性。此綁定類型適用于可編輯窗體或其他完全交互式 UI 方案 。
OneWayToSource 與 OneWay 相反;它在目標屬性更改時更新源屬性。
OneTime綁定:該綁定會導致源屬性初始化目標屬性,但不傳播后續更改。
注釋:如果無需監視目標屬性的更改,則使用 OneWay 綁定模式可避免 TwoWay 綁定模式的系統開銷。
大多數屬性都默認為 OneWay 綁定,但是一些依賴項屬性,通常為用戶可編輯的控件的屬性,如 TextBox 的 Text 屬性和 CheckBox 的 IsChecked 屬性,默認為 TwoWay 綁定。
如果要知道依賴項屬性綁定在默認情況下是單向還是雙向的編程方法可使用 GetMetadata 獲取屬性的屬性元數據,然后檢查 BindsTwoWayByDefault 屬性的布爾值。
示例代碼:
代碼如下:
<Page x:Class="WpfDemo.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Page1" HorizontalAlignment="Center">
<Grid Name="GridTable" Height="360" Background="Silver">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
新聞熱點
疑難解答
圖片精選