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的简化版本,它有一组限制,那么导致上述代码不起作用的确切限制是什么?

最佳答案 TemplateBinding非常不同.在应用模板时,将它们视为简单的值赋值.

由于SelectedItem在运行时更改,因此您需要对属性更改通知进行实际绑定.

点赞