WPF 資料繫結基礎

來源:互聯網
上載者:User

標籤:使用   os   資料   io   代碼   re   

純理論,可能會枯燥。

.net 技術群: 199281001 ,歡迎加入。

1.目標對象一定是派生自DependencyObject的對象,並且目標屬性必須是相依性屬性,否則資料繫結操作將會失   敗。繫結來源對象可以不是依賴對象和相依性屬性。

2.定義了相依性屬性時,FrameworkPropertyMetadataOptions.NotDataBindable 標誌會影響相依性屬性的綁定。當改變來源物件相依性屬性值後,繫結目標可以立即得以更新,開發人員不需要響應事件來手動編寫響應代碼。

3.移除綁定:開發人員可以通過BindingOperations類的兩個靜態方法移除綁定。

  <1> ClearAllBindings():從指定的DependencyObject 中移除所有的綁定。

  <2>ClearBinding(): 擷取一個相依性屬性作為參數。如果該屬性存在綁定,則移除綁定。

    這兩個方法的適用樣本如下。

  BindingOperations.ClearAllBindings(nameTextBox,TextBox.TextProperty);

  BindingOperations.ClearBinding(nameTextBox);

ClearAllBindings()和ClearBinding() 都是派生自DependentyObject類的ClearValue()方法來移除屬性的本地值。

4.綁定方向

  <1>OneWay :當源屬性發生更改時更新目標屬性。

  <2>TwoWay :當源屬性發生更改時更新新目標屬性,當目標屬性發生更改時,同時也更改源屬性。

  <3>OneTime :僅當應用程式啟動時或DataContext變更時更新目標屬性。

  <4>OneWayToSource :在目標屬性更改時更新源屬性。

  <5>Default :使用目標屬性的預設Mode 值。

5.綁定更新

   <1>Default :繫結目標屬性的預設UpdateSourceTrigger值。 多數依賴項屬性的預設值為PropertyChanged,而Text屬性的預設值為 LostFocus()。

   <2>PropertyChanged :當綁定的目標屬性更改時,立即更新繫結來源。

   <3>LostFocus() :當繫結目標元素失去焦點時,更新繫結來源。

   <4>Explicit :僅在調用UpdateSource()方法時更新繫結來源。

6.綁定到非元素的對象

   <1>Source :指向來源物件的引用,也即提供資料對象的引用。

   <2>RelativeSource :指向當前元素自身的對象。允許為目標對象指定一個相對於來源物件的目標對象。這不太好理解。

        RelativeSource  Mode屬性

           <2.1>PreviousData :允許綁定所顯示的資料項目列表中以前的資料項目(不是包含資料項目的控制項)。

           <2.2>TemplatedParent :引用應用模板(其中有綁定資料的元素)的元素。

           <2.3>Self :引用使用者對其設定綁定的元素。

           <2.4>FindAncestor :引用資料繫結元素父鏈中的上級。

    <3>DataContext :如果沒有指定Source或者RelativeSource屬性,WPF將從當前元素開始向上搜尋元素樹。檢查每個元素的DataContext屬性,並且會使用最先找到的DataContext,也即DataContext屬性不為null的資料內容,DataContext可以綁定很多屬性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.