2012-02-06 32 views

回答

16

{TemplateBinding X}只是寫入{Binding X, RelativeSource={RelativeSource TemplatedParent}}的一種捷徑。

他們評估的是同樣的東西,雖然TemplateBinding是在編譯時評估的,而RelativeSource TemplatedParent是在運行時評估的。

因爲它是在編譯時評估的,所以TemplateBinding的評估速度要快一些,但是如果它不認爲綁定屬性存在,它會拋出錯誤。如果您知道該屬性存在但編譯器不知道它,那麼您使用RelativeSource TemplatedParent,因爲它是在運行時而不是編譯時評估的。

總之,使用TemplateBinding,除非它給你一個錯誤,你知道該屬性存在。然後使用RelativeSource TemplatedParent

accepted answer to the question you linked包含之間的差別相當不錯的總結兩個

+0

'TemplateBinding'是'OneWay'和'TemplatedParent'是'TwoWay'。 – 2016-12-13 08:32:02

相關問題