Binding 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供高階的綁定定義存取權限,該綁定連結目標物件(通常是 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 |
當來源值為 |
| UpdateSourceExceptionFilter |
會取得或設定一個處理器,讓你用來提供自訂邏輯,處理綁定引擎在更新綁定來源值時遇到的異常。 這只適用於你與綁定有關聯的 。ExceptionValidationRule |
| UpdateSourceTrigger |
取得或設定一個值,決定綁定原始碼更新的時機。 |
| ValidatesOnDataErrors |
取得或設定一個值,指示是否包含 。DataErrorValidationRule |
| ValidatesOnExceptions |
取得或設定一個值,指示是否包含 。ExceptionValidationRule |
| ValidatesOnNotifyDataErrors |
取得或設定一個值,指示是否包含 。NotifyDataErrorValidationRule |
| ValidationRules |
會收到一組規則來檢查使用者輸入的有效性。 |
| XPath |
取得或設定查詢 |
附加屬性
| 名稱 | Description |
|---|---|
| XmlNamespaceManager |
取得或設定 用於 XmlNamespaceManager 執行 XML 綁定中命名空間感知 |
方法
附加事件
| 名稱 | Description |
|---|---|
| SourceUpdated |
當將值從綁定目標轉移到綁定來源時,但僅限於將 NotifyOnSourceUpdated 值設為 |
| TargetUpdated |
當將值從綁定來源轉移到綁定目標時,但僅限於將 NotifyOnTargetUpdated 值設為 |