我对TemplateBinding和TemplatedParent感到困惑。我也通过这个链接
WPF TemplateBinding vs RelativeSource TemplatedParent
但是我的疑问是何时使用TemplateBinding和TemplatedParent?
提前致谢。
最佳答案
{TemplateBinding X}
只是编写{Binding X, RelativeSource={RelativeSource TemplatedParent}}
的快捷方式。
尽管TemplateBinding
是在编译时评估的,而RelativeSource TemplatedParent
是在运行时评估的,但它们的评估结果相同。
由于TemplateBinding
是在编译时评估的,因此评估起来会更快一些,但是如果认为不存在bound属性,它将引发错误。如果您知道该属性存在,但是编译器不知道该属性,则可以使用RelativeSource TemplatedParent
,因为它是在运行时而不是编译时求值的。
总而言之,请使用TemplateBinding
,除非它给您一个错误并且您知道该属性存在。然后使用RelativeSource TemplatedParent
accepted answer to the question you linked包含有关两者之间差异的相当不错的摘要
关于wpf - 何时在WPF中使用TemplateBinding和TemplatedParent,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9157972/