何时在WPF中使用TemplateBinding和TemplatedParent

时间:2012-02-06 09:25:30

标签: wpf datatemplate controltemplate

我对TemplateBinding和TemplatedParent感到困惑。我也经历过这个链接 WPF TemplateBinding vs RelativeSource TemplatedParent

但我怀疑何时使用TemplateBinding和TemplatedParent?

提前致谢。

1 个答案:

答案 0 :(得分:17)

{TemplateBinding X}只是编写{Binding X, RelativeSource={RelativeSource TemplatedParent}}的快捷方式。

他们评估同样的事情,虽然TemplateBinding在编译时评估,而RelativeSource TemplatedParent在运行时评估。

因为它是在编译时进行评估的,所以TemplateBinding的评估速度要快一些,但是如果不认为绑定属性存在则会抛出错误。如果您知道该属性存在但编译器不知道它,那么您使用RelativeSource TemplatedParent,因为它是在运行时而不是编译时计算的。

总结一下,使用TemplateBinding除非它给出错误并且您知道该属性存在。然后使用RelativeSource TemplatedParent

accepted answer to the question you linked包含两个

之间差异的非常好的总结