我正在尝试将Silverlight应用程序移植到Metro,并且发现在我的ControlTemplate设置中,我对{Binding PropertyName, RelativeSource={RelativeSource TemplatedParent}}
的绑定似乎不起作用,但是{TemplateBinding PropertyName}
会这样做。
这两个都在我的Silverlight应用程序中工作,但是我需要使用RelativeSource语法来允许使用Mode=TwoWay
。
在ControlTemplate中使用TwoWay绑定需要做什么?
答案 0 :(得分:2)
如果您正在构建自己的控件 - 您可以通过在OnApplyTemplate()重写中调用GetTemplateChild()来定义模板部件并检索它们 - 然后只需手动更新属性而不是依赖绑定。如果您只是重新尝试现有的控件 - 也许您可以先将它们子类化,或创建附加的依赖属性/ behaviors来处理绑定。