0

将模板化父级指定为模板化控件中绑定的源似乎很常见,但冗长得令人恼火。有没有一种速记方法可以做到这一点?

路径上的某种前缀似乎更合理。例如

{Binding ^Title}

或类似的东西,而不是

{Binding Title, RelativeSource={RelativeSource Mode=TemplatedParent}}
4

1 回答 1

2

您可以使用TemplateBinding

{TemplateBinding Title}

但请注意

用作源属性和目标属性值的类型必须匹配。当您使用 TemplateBinding 时,没有机会引入转换器。解析 XAML 时未能匹配值会导致错误。如果您需要转换器,您可以使用详细语法进行模板绑定,例如:{Binding RelativeSource={RelativeSource TemplatedParent}, Converter="..." ...}

而且,可能更重要的是这里的第二句话:

TemplateBinding 始终是一种单向绑定。涉及的两个属性都必须是依赖属性。

于 2016-03-17T17:58:11.687 回答