我对TemplateBinding和TemplatedParent有些困惑。我已经看过了这个链接 WPF TemplateBinding vs RelativeSource TemplatedParent
但我的问题是什么时候使用TemplateBinding和TemplatedParent?
提前感谢。
我对TemplateBinding和TemplatedParent有些困惑。我已经看过了这个链接 WPF TemplateBinding vs RelativeSource TemplatedParent
但我的问题是什么时候使用TemplateBinding和TemplatedParent?
提前感谢。
{TemplateBinding X}
是一个简单的缩写,用于书写 {Binding X, RelativeSource={RelativeSource TemplatedParent}}
。
它们的结果是相同的,尽管 TemplateBinding
在编译时求值,而 RelativeSource TemplatedParent
在运行时求值。
因为它在编译时求值,所以 TemplateBinding
比较快,但如果它认为绑定的属性不存在,则会抛出错误。如果您知道属性存在,但编译器不知道它,请使用RelativeSource TemplatedParent
,因为它在运行时而不是编译时求值。
总之,除非出现错误且您知道该属性存在,否则请使用TemplateBinding
。然后使用 RelativeSource TemplatedParent
。
回答您提供的问题链接中的被接受的答案 包含了关于两者之间的差异的很好的总结。
TemplateBinding
是OneWay
,而TemplatedParent
是TwoWay
。 - Nikhil Agrawal