共用方式為


Binding 類別

定義

提供高階的綁定定義存取權限,該綁定連結目標物件(通常是 WPF 元素)與任何資料來源(例如資料庫、XML 檔案或任何包含資料的物件)的屬性。

public ref class Binding : System::Windows::Data::BindingBase
public class Binding : System.Windows.Data.BindingBase
type Binding = class
    inherit BindingBase
Public Class Binding
Inherits BindingBase
繼承

備註

Windows Presentation Foundation(WPF)資料綁定提供了一種簡單且一致的方式,讓應用程式能夠呈現並與資料互動。 資料綁定讓你能同步兩個不同物件屬性的值。

要建立綁定,可以使用 Binding 繼承 BindingBase的類別或其他類別。 無論你綁定的是哪個物件,以及資料來源的性質,每次綁定都遵循下圖所示的模型。

基本資料綁定圖

圖中展示了以下基本的 WPF 資料綁定概念。

  • 每個綁定通常包含以下四個組成部分:綁定目標物件、目標屬性、綁定來源,以及綁定來源中要使用值的 a Path 。 舉例來說,如果你想將 a TextBox 的內容綁定到 Employee 物件的 Name 屬性,你的目標物件是 TextBox,目標屬性就是屬性 Text ,要用的值是 Name,而來源物件就是 Employee 物件。

  • 目標屬性必須是相依屬性。 這也代表你無法綁定場域。 大多數物件屬性 UIElement 都是相依屬性,且大多數相依屬性(除了唯讀屬性外)預設支援資料綁定。 (只有 DependencyObject 類型能定義依賴性質,所有 UIElement 物件皆由 衍生。 DependencyObject

  • 雖然圖中未明確說明,但應注意綁定來源物件並不限於自訂 CLR 物件。 WPF 資料綁定支援以 CLR 物件與 XML 形式的資料。 舉例來說,你的綁定來源可能是 UIElement、任何 list 物件、與 ADO.NET 資料或 Web 服務相關的 CLR 物件,或是包含 XML 資料的 XmlNode。

使用屬性 Mode 來指定資料流的方向。 為了偵測單向或雙向綁定的來源變更,來源必須實作適當的屬性變更通知機制,例如 INotifyPropertyChanged。 舉例請參見 「如何:實作屬性變更通知」。 該 UpdateSourceTrigger 屬性指定了原始碼更新的時間點。 欲了解更多資訊,請參閱 資料綁定概述中的「基本資料綁定概念」。

XAML 屬性使用方式

<object property="{Binding  declaration}"/>

XAML 值

宣告 零個或多個屬性指派子句,以逗號(,)分隔。 欲了解更多資訊,請參閱「 綁定標記擴充」 或「 綁定聲明概述」。

建構函式

名稱 Description
Binding()

初始化 Binding 類別的新執行個體。

Binding(String)

初始化類別的新實例 Binding ,並設定初始路徑。

欄位

名稱 Description
DoNothing

用作返回值,指示綁定引擎不執行任何動作。

IndexerName

用作PropertyNamePropertyChangedEventArgs表示索引器屬性已變更的 of。

SourceUpdatedEvent

識別 SourceUpdated 所附事件。

TargetUpdatedEvent

識別 TargetUpdated 所附事件。

XmlNamespaceManagerProperty

XmlNamespaceManager識別所附財產。

屬性

名稱 Description
AsyncState

接收或設定傳送給非同步資料調度器的不透明資料。

BindingGroupName

取得或設定該綁定所屬的名稱 BindingGroup

(繼承來源 BindingBase)
BindsDirectlyToSource

取得或設定一個值,指示是要評估Path該相對於資料項目還是物件。DataSourceProvider

Converter

取得或設定轉換器使用。

ConverterCulture

建立或建立評估轉換器的文化。

ConverterParameter

取得或設定參數傳遞給 Converter

Delay

取得或設定在目標值改變後更新綁定來源前的等待時間(以毫秒計)。

(繼承來源 BindingBase)
ElementName

取得或設定元素名稱作為綁定來源物件。

FallbackValue

當綁定無法回傳某個值時,取得或設定該值要使用。

(繼承來源 BindingBase)
IsAsync

取得或設定一個值,指示是否 Binding 應該非同步取得並設定值。

Mode

取得或設定一個值,指示綁定中資料流的方向。

NotifyOnSourceUpdated

取得或設定一個值,指示當值從綁定目標轉移到綁定來源時是否要觸發事件 SourceUpdated

NotifyOnTargetUpdated

取得或設定一個值,指示當值從綁定來源轉移到綁定目標時,是否要提出 TargetUpdated 事件。

NotifyOnValidationError

取得或設定一個值,指示是否要在綁定物件上引發 Error 附加事件。

Path

取得或設定到綁定來源屬性的路徑。

RelativeSource

透過指定結合來源相對於結合目標位置的位置,取得或設定該結合源。

Source

取得或設定物件作為綁定來源。

StringFormat

如果將綁定值顯示為字串,則會取得或設定一個字串,指定如何格式化綁定。

(繼承來源 BindingBase)
TargetNullValue

當來源值為 null時,取得或設定目標所使用的值。

(繼承來源 BindingBase)
UpdateSourceExceptionFilter

會取得或設定一個處理器,讓你用來提供自訂邏輯,處理綁定引擎在更新綁定來源值時遇到的異常。 這只適用於你與綁定有關聯的 。ExceptionValidationRule

UpdateSourceTrigger

取得或設定一個值,決定綁定原始碼更新的時機。

ValidatesOnDataErrors

取得或設定一個值,指示是否包含 。DataErrorValidationRule

ValidatesOnExceptions

取得或設定一個值,指示是否包含 。ExceptionValidationRule

ValidatesOnNotifyDataErrors

取得或設定一個值,指示是否包含 。NotifyDataErrorValidationRule

ValidationRules

會收到一組規則來檢查使用者輸入的有效性。

XPath

取得或設定查詢 XPath ,回傳 XML 綁定來源的值以供使用。

附加屬性

名稱 Description
XmlNamespaceManager

取得或設定 用於 XmlNamespaceManager 執行 XML 綁定中命名空間感知 XPath 的查詢。

方法

名稱 Description
AddSourceUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

新增一個處理者來處理 SourceUpdated 附加事件。

AddTargetUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

新增一個處理者來處理 TargetUpdated 附加事件。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

(繼承來源 Object)
GetXmlNamespaceManager(DependencyObject)

回傳一個由綁定到指定物件的綁定所使用的 XML 命名空間管理器物件。

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ProvideValue(IServiceProvider)

回傳一個物件,該物件應該設在該綁定與擴充的屬性上。

(繼承來源 BindingBase)
RemoveSourceUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

移除所附事件的 SourceUpdated 操作者。

RemoveTargetUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

移除所附事件的 TargetUpdated 操作者。

SetXmlNamespaceManager(DependencyObject, XmlNamespaceManager)

設定綁定所使用命名空間管理器物件,並附加於所提供元素。

ShouldSerializeFallbackValue()

回傳一個值,指示序列化程序是否應該序列化該屬性在此類實例上的有效值 FallbackValue

(繼承來源 BindingBase)
ShouldSerializePath()

表示該屬性是否 Path 應該被保留。

ShouldSerializeSource()

表示該屬性是否 Source 應該被保留。

ShouldSerializeTargetNullValue()

回傳一個值,指示該屬性是否 TargetNullValue 應該被序列化。

(繼承來源 BindingBase)
ShouldSerializeValidationRules()

表示該屬性是否 ValidationRules 應該被保留。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

附加事件

名稱 Description
SourceUpdated

當將值從綁定目標轉移到綁定來源時,但僅限於將 NotifyOnSourceUpdated 值設為 true的綁定時,會發生。

TargetUpdated

當將值從綁定來源轉移到綁定目標時,但僅限於將 NotifyOnTargetUpdated 值設為 true的綁定時發生。

適用於

另請參閱