我對TemplateBinding和TemplatedParent存在困惑。我已經通過這個鏈接 WPF TemplateBinding vs RelativeSource TemplatedParent什麼時候在WPF中使用TemplateBinding和TemplatedParent
但我的疑問是什麼時候使用TemplateBinding和TemplatedParent?
在此先感謝。
我對TemplateBinding和TemplatedParent存在困惑。我已經通過這個鏈接 WPF TemplateBinding vs RelativeSource TemplatedParent什麼時候在WPF中使用TemplateBinding和TemplatedParent
但我的疑問是什麼時候使用TemplateBinding和TemplatedParent?
在此先感謝。
{TemplateBinding X}
只是寫入{Binding X, RelativeSource={RelativeSource TemplatedParent}}
的一種捷徑。
他們評估的是同樣的東西,雖然TemplateBinding
是在編譯時評估的,而RelativeSource TemplatedParent
是在運行時評估的。
因爲它是在編譯時評估的,所以TemplateBinding
的評估速度要快一些,但是如果它不認爲綁定屬性存在,它會拋出錯誤。如果您知道該屬性存在但編譯器不知道它,那麼您使用RelativeSource TemplatedParent
,因爲它是在運行時而不是編譯時評估的。
總之,使用TemplateBinding
,除非它給你一個錯誤,你知道該屬性存在。然後使用RelativeSource TemplatedParent
的accepted answer to the question you linked包含之間的差別相當不錯的總結兩個
'TemplateBinding'是'OneWay'和'TemplatedParent'是'TwoWay'。 – 2016-12-13 08:32:02