TemplateBinding的局限性

时间:2011-06-22 15:11:48

标签: wpf templatebinding

自定义控件(在VS 2008下编写)具有SelectedColor依赖项属性,其控制模板包含以下内容:

...
<Rectangle>
  <Rectangle.Fill>
    <SolidColorBrush Color="{TemplateBinding SelectedColor}"/>
  </Rectangle.Fill>
</Rectangle>
...

矩形的颜色不正确,除非使用以下内容重新绑定:

...
<Rectangle>
  <Rectangle.Fill>
    <SolidColorBrush Color="{Binding SelectedColor, RelativeSource={RelativeSource TemplatedParent}}"/>
  </Rectangle.Fill>
</Rectangle>
...

好的,我知道TemplateBinding是Binding的简化版本,它有一组限制,那么导致上述代码不起作用的确切限制是什么?

1 个答案:

答案 0 :(得分:2)

TemplateBinding非常不同。在应用模板时,将它们视为简单的值赋值。 由于SelectedItem在运行时更改,因此您需要对属性更改通知进行实际绑定。