我对TemplateBinding和TemplatedParent感到困惑。我也经历过这个链接 WPF TemplateBinding vs RelativeSource TemplatedParent
但我怀疑何时使用TemplateBinding和TemplatedParent?
提前致谢。
答案 0 :(得分:17)
{TemplateBinding X}
只是编写{Binding X, RelativeSource={RelativeSource TemplatedParent}}
的快捷方式。
他们评估同样的事情,虽然TemplateBinding
在编译时评估,而RelativeSource TemplatedParent
在运行时评估。
因为它是在编译时进行评估的,所以TemplateBinding
的评估速度要快一些,但是如果不认为绑定属性存在则会抛出错误。如果您知道该属性存在但编译器不知道它,那么您使用RelativeSource TemplatedParent
,因为它是在运行时而不是编译时计算的。
总结一下,使用TemplateBinding
除非它给出错误并且您知道该属性存在。然后使用RelativeSource TemplatedParent