何时在WPF中使用TemplateBinding和TemplatedParent

Sye*_*yed 6 wpf datatemplate controltemplate

我对TemplateBinding和TemplatedParent感到困惑.我已经通过这个链接 WPF TemplateBinding vs RelativeSource TemplatedParent

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

提前致谢.

Rac*_*hel 17

{TemplateBinding X}只是写作的捷径{Binding X, RelativeSource={RelativeSource TemplatedParent}}.

它们评估相同的东西,虽然TemplateBinding在编译时进行评估,但RelativeSource TemplatedParent在运行时进行评估.

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

总结一下,TemplateBinding除非它给你一个错误并且你知道该属性存在,否则请使用.然后用RelativeSource TemplatedParent

您链接的问题接受答案包含两者之间差异的非常好的总结

  • `TemplateBinding` 是 `OneWay`,`TemplatedParent` 是 `TwoWay`。 (2认同)