TemplateBinding 標記延伸

將控制項樣板中的屬性值連結成為樣板化控制項上另一個屬性的值。

XAML Attribute Usage

<object property="{TemplateBinding sourceProperty}" ... />

XAML 屬性使用方式 (針對樣板或樣式中的 Setter 屬性)

<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />  

XAML 值

Description
propertyName 在 setter 語法中設定之屬性的 DependencyProperty.Name
sourceProperty 存在於樣板化類型上的另一個相依性屬性,由其 DependencyProperty.Name 所指定。

- 或 -

「穿插句點」的屬性名稱,由樣板化目標類型以外的不同類型所定義。 這實際上是一個 PropertyPath。 請參閱 PropertyPath XAML 語法

備註

TemplateBinding是範本案例的Binding優化形式,類似於Binding使用 {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}建構的 。 TemplateBinding 永遠是單向繫結,即使相關的屬性是預設為雙向繫結也一樣。 相關的兩個屬性必須是相依性屬性。 若要實現對樣板化父系的雙向系結,請改 {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}用下列系結語句。

RelativeSource 是另一個標記延伸,有時會與 或 搭配使用,而不是 TemplateBinding 在範本內執行相對屬性系結。

此處未說明將控件範本描述為概念;如需詳細資訊,請參閱 控件樣式和範本

屬性 (Attribute) 語法是最常搭配這個標記延伸來使用的語法。 TemplateBinding 識別項字串後所提供的字串語彙基元,是指派做為基礎 Property 延伸類別的 TemplateBindingExtension 值。

物件項目語法雖然可行,但由於沒有實際的應用程式,所以這裡不加說明。 TemplateBinding 是用來以評估後的運算式填滿 setter 內的值,而使用 TemplateBinding 的物件項目語法來填滿 <Setter.Property> 屬性項目語法則太過繁瑣。

TemplateBinding 也可以用於會指定 Property 屬性 (Property) 做為 property=value 配對組的詳細屬性 (Attribute) 使用方式中。

<object property="{TemplateBinding Property=sourceProperty}" ... />

詳細使用方式通常是適用於具有一個以上可設定屬性或有些屬性為選擇性屬性的標記延伸。 因為 TemplateBinding 只有一個必要的可設定屬性,所以這種詳細使用方式並不常見。

在 WPF XAML 處理器實作中,這個標記延伸的處理是由 TemplateBindingExtension 類別所定義。

TemplateBinding 是一種標記延伸。 如果必須將屬性 (Attribute) 值加上逸出符號,以免成為常值或處理常式名稱,而且這個動作必須更全面地實施 (而不是只對特定類型或屬性 (Property) 設定類型轉換子 (Type Converter)),則通常會實作標記延伸。 XAML 中的所有標記延伸都會在其 { 屬性語法中使用 和 } 字元,這是 XAML 處理器辨識標記延伸必須處理屬性的慣例。 如需詳細資訊,請參閱標記延伸和 WPF XAML

另請參閱