何时在WPF中使用TemplateBinding和TemplatedParent?

6
1个回答

18

{TemplateBinding X} 是一个简单的缩写,用于书写 {Binding X, RelativeSource={RelativeSource TemplatedParent}}

它们的结果是相同的,尽管 TemplateBinding 在编译时求值,而 RelativeSource TemplatedParent 在运行时求值。

因为它在编译时求值,所以 TemplateBinding 比较快,但如果它认为绑定的属性不存在,则会抛出错误。如果您知道属性存在,但编译器不知道它,请使用RelativeSource TemplatedParent,因为它在运行时而不是编译时求值。

总之,除非出现错误且您知道该属性存在,否则请使用TemplateBinding。然后使用 RelativeSource TemplatedParent

回答您提供的问题链接中的被接受的答案 包含了关于两者之间的差异的很好的总结。


2
TemplateBindingOneWay,而 TemplatedParentTwoWay - Nikhil Agrawal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接