我什么时候应该使用模板绑定?

时间:2015-06-11 20:38:39

标签: c# wpf

我读了这个关于模板绑定的帖子: What is the template binding vs binding? 我想知道数据模板绑定到的对象是否是Template类,我应该使用模板绑定吗?

我目前正在使用经典绑定,如何切换到使用'模板绑定'?只需将'Binding'替换为'TemplateBinding'

即可

我的模板类如下:

公共类MyTemplateClass {

}

我为数据模板创建了一个绑定到的实例。

1 个答案:

答案 0 :(得分:1)

TemplateBinding与ControlTemplate有关,简而言之,它是一种从模板用户将属性注入模板的方法。

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

虽然在编译时评估TemplateBinding,但在运行时评估RelativeSource TemplatedParent,但它们评估的内容相同。

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

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