自定义控件(在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的简化版本,它有一组限制,那么导致上述代码不起作用的确切限制是什么?
答案 0 :(得分:2)
TemplateBinding非常不同。在应用模板时,将它们视为简单的值赋值。 由于SelectedItem在运行时更改,因此您需要对属性更改通知进行实际绑定。