整理 WPF中Binding的幾種寫法

2022-06-06 11:51:09 字數 1475 閱讀 3969

目的:整理wpf中bind的寫法

在使用binding類的時候有4中繫結模式可以選擇

bindingmode

twoway:

導致對源屬性或目標屬性的更改可自動更新對方。此繫結型別適用於可編輯窗體或其他完全互動式 ui 方案。

oneway:

當繫結源(源)更改時,更新繫結目標(目標)屬性。如果要繫結的控制項為隱式唯讀控制項,則適用此繫結型別。例如,可以繫結到如**代號之類的源。或者,可能目標屬性沒有用於進行更改(例如表的資料繫結背景色)的控制項介面。如果不需要監視目標屬性的更改,則使用 oneway 繫結模式可避免 twoway 繫結模式的系統開銷。

onetime:

當應用程式啟動或資料上下文更改時,更新繫結目標。此繫結型別適用於以下情況:使用當前狀態的快照適合使用的或資料狀態實際為靜態的資料。如果要從源屬性初始化具有某個值的目標屬性,並且事先不知道資料上下文,則也可以使用此繫結型別。實質上,這是 oneway 繫結的較簡單的形式,它在不更改源值的情況下可提供更好

的效能。

onewaytosource :

當目標屬性更改時更新源屬性。

default:

使用繫結目標的預設 mode 值。每個依賴項屬性的預設值都不同。一般情況下,使用者可編輯控制項屬性(例如文字框和核取方塊的屬性)預設為雙向繫結,而多數其他屬性默認為單向繫結。確定依賴項屬性繫結在預設情況下是單向還是雙向的程式設計方法是:使用 getmetadata 來獲取屬性的屬性元資料,然後檢查 bindstwowaybydefault 屬性的布林值。

使用 mode 屬性指定繫結的方向。以下列舉列表列出了可供繫結更新的選項:

仍然使用上個文章中的文字框,標籤控制項,以及滾動條來說明繫結模式不同

1。使用twoway方式繫結以後,如果手動更改textbox的值,此時如果通過按鈕事件來檢視滾動條的value值,就會發現和textbox是一致

2。oneway方式,就是滾動條改變的時候會改變文字框的顯示值,但是文字框更改的時候不會更改滾動條的值

3。onetime方法,會發現文字框的值會是滾動條的初始值。而且不會變化

4。onewaytosource。就是文字框更改的時候會改變源的屬性。這個時候其實資料來源和資料目標已經顛倒過來了

5。default方式,這個方式完全就是根據控制項的屬性來設定的。有的屬性適合twoway方式,比如互動的ui控制項,有點只能oneway方式

**:

WPF的Binding學習筆記 三

在筆記 一 中記了點binding的path相關,因為binding的帶參構造器就只有path的引數.所以path是很重要的,有了path,即使在沒有指定source的時候,binding也會隨著ui元素樹一層一層往外找datacontext物件,判斷是否具有相應的path,有就拿來用.一,data...

WPF使用Binding對資料的校驗

我們通常都會設定對輸入的數值進行校驗,在wpf也一樣,在本示例中,我們使用兩個控制項,分別是textbox1和slider1,通過文字控制項,輸入符合slider的值,如果值不在此範圍則顯示文字框為紅色,反映輸入值不正確,控制項不會因此改變。1 xaml 2 為了進行校驗,我們準備了乙個valida...

WPF使用Binding對資料的校驗

我們通常都會設定對輸入的數值進行校驗,在wpf也一樣,在本示例中,我們使用兩個控制項,分別是textbox1和slider1,通過文字控制項,輸入符合slider的值,如果值不在此範圍則顯示文字框為紅色,反映輸入值不正確,控制項不會因此改變。1 xaml 2 為了進行校驗,我們準備了乙個valida...