定義 TemplateBinding是為了某個特定場景優化出來的數據綁定版本--需要把ControlTemplate裡面的某個Property綁定到應用該ControlTemplate的控制項的對應Property上。 用法 區別 1. Binding比TemplateBinding更加靈活強大,但是 ...
定義
TemplateBinding是為了某個特定場景優化出來的數據綁定版本--需要把ControlTemplate裡面的某個Property綁定到應用該ControlTemplate的控制項的對應Property上。
用法
<object property="{TemplateBinding targetProperty}" .../> 在模板或樣式中用Setter屬性的用法: <Setter Property="propertyName" Value="{TemplateBinding targetProperty}" .../>
區別
1. Binding比TemplateBinding更加靈活強大,但是開銷也更大。TemplateBinding在使用場景有限制,但是效率較高。Template非常類似{Binding RelativeSource={RelativeSource TemplatedParent}}構造的Binding。
2. TemplateBinding同樣允許我們定義Converter和ConverterParameter,在一定程度上加強了TemplateBinding的應用功能和範圍.
3. 最重要的區別:TemplateBinding僅僅支持單向的數據綁定,從應用Template的控制項到Template(from templated control to template)。如果我們需要反向或者雙向的綁定,唯一的選擇就是應用Binding和RelativeSource。