Share via


繫結標記延伸

更新:2007 年 11 月

將屬性值延後以成為資料繫結值,使其建立中繼運算式物件並解譯會在執行階段套用至項目的資料內容。

XAML 屬性使用方式

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

-或-

<object property="{Binding  bindingPropertyName1=value,
  bindingPropertyName2=value,
  bindingPropertyNameN=value}" ...
/>

XAML 物件項目使用方式

<object>
  <object.property>
    <Binding/>
  </object.property>
</object>

-或-

<object>
  <object.property>
    <Binding      bindingPropertyName1="value"
      bindingPropertyName2="value"
      bindingPropertyNameN="value"
    />
  </object.property>
</object>

下列任何屬性 (Property) (在範例屬性語法中會以 property=value 組設定) 都可以設定為物件項目語法中所定義之 Binding 項目的屬性 (Attribute)。

XAML 值

bindingPropertyName#

要設定之 Binding 屬性 (Property) 的 Name。並非所有 Binding 屬性 (Property) 都可使用 Binding 延伸進行設定,有些屬性 (Property) 只能使用進一步巢狀的標記延伸進行設定。請參閱「可使用繫結延伸進行設定的繫結屬性」一節。

value

要設定給屬性 (Property) 的值。屬性 (Attribute) 值的處理方式,最終需視所要設定之 bindingPropertyName 的型別與邏輯而定。

可使用繫結延伸進行設定的繫結屬性

本主題顯示的語法使用泛型 bindingPropertyName=value 近似值,因為 BindingBaseBinding 有許多讀取/寫入屬性 (Property) 可透過 Binding 標記延伸語法進行設定。這些屬性可以用任何順序進行設定。基本上,您可以使用以逗號分隔的 property=value 組,設定下列清單中的零個或多個屬性 (Property)。

在這些屬性 (Property) 值中,有幾個屬性 (Property) 值需要的物件型別不支援原生型別轉換,因此必須進一步在 XAML 中將標記延伸使用方式設定為屬性 (Attribute) 值。若要判斷正確的屬性 (Attribute) 語法,請參閱各屬性 (Property) 參考資料中的「XAML 屬性使用方式」一節。

以下是無法使用 Binding 標記延伸進行設定的 Binding 屬性 (Property)。

備註

這裡的 bindingPropertyName 預留位置對應於 Binding 類別中已宣告之某些可設定的屬性 (Property) 的名稱,而值字串則指定這些屬性 (Property) 值將如何在宣告成 XAML 項目的 Binding 內設定為 XAML 屬性 (Attribute)。

這裡將不說明資料繫結 (Data Binding) 的概念,如需其相關概念,請參閱資料繫結概觀,如需替代語法的詳細資訊,請參閱繫結宣告概觀。替代語法的相關討論中將說明如何使用多種可能的語法來建立對等的繫結,例如在 XAML 中 Binding 物件項目的屬性 (Attribute) 屬性 (Property)、Binding 的屬性 (Property) 項目語法,或是使用 SetBindingBinding 建構函式 (Constructor) 的程序建立繫結。

重要事項:

就相依性屬性 (Property) 優先順序而言,Binding 運算式相當於本機設定值。如果您為原來具有 Binding 運算式的屬性 (Property) 設定本機值,這個 Binding 將被完全移除。如需詳細資訊,請參閱相依性屬性值優先順序

注意事項:

MultiBindingPriorityBinding 不支援 XAML 延伸語法 (儘管它們共用相同的 BindingBase 類別,而這個類別實際會實作 Binding 的 XAML 行為)。

Binding 是一種標記延伸。如果必須將屬性 (Attribute) 值加上逸出符號,以免成為常值或處理常式名稱,而且這個動作必須更全面地實施 (而不是只對特定型別或屬性 (Property) 設定型別轉換子 (Type Converter)),則通常會實作標記延伸。所有 XAML 標記延伸都會在其屬性 (Attribute) 語法中使用 { 與 } 字元,這個慣例讓 XAML 處理器知道某個標記延伸必須處理這個屬性 (Attribute)。如需詳細資訊,請參閱標記延伸和 XAML。Binding 屬於罕見的標記延伸,原因是實作這個延伸功能的 Binding 類別也會實作其他多個方法與屬性 (Property)。這些其他成員並不是標記延伸功能所必要的。這些成員的用途在於使 Binding 成為更多樣化和獨立的類別,不只能夠當成 XAML 標記延伸功能,還能用於因應其他許多資料繫結案例。

請參閱

概念

資料繫結概觀

繫結宣告概觀

XAML 概觀

標記延伸和 XAML

參考

Binding