将模板化父级指定为模板化控件中绑定的源似乎很常见,但冗长得令人恼火。有没有一种速记方法可以做到这一点?
路径上的某种前缀似乎更合理。例如
{Binding ^Title}
或类似的东西,而不是
{Binding Title, RelativeSource={RelativeSource Mode=TemplatedParent}}
将模板化父级指定为模板化控件中绑定的源似乎很常见,但冗长得令人恼火。有没有一种速记方法可以做到这一点?
路径上的某种前缀似乎更合理。例如
{Binding ^Title}
或类似的东西,而不是
{Binding Title, RelativeSource={RelativeSource Mode=TemplatedParent}}
您可以使用TemplateBinding:
{TemplateBinding Title}
但请注意
用作源属性和目标属性值的类型必须匹配。当您使用 TemplateBinding 时,没有机会引入转换器。解析 XAML 时未能匹配值会导致错误。如果您需要转换器,您可以使用详细语法进行模板绑定,例如:
{Binding RelativeSource={RelativeSource TemplatedParent}, Converter="..." ...}
而且,可能更重要的是这里的第二句话:
TemplateBinding 始终是一种单向绑定。涉及的两个属性都必须是依赖属性。