4

カスタム コントロール (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>
...

OK、TemplateBinding は Binding の簡略化されたバージョンであり、一連の制限があることは承知しています。では、上記のコードが機能しない原因となる正確な制限は何ですか?

4

1 に答える 1

2

TemplateBinding は大きく異なります。テンプレートが適用されるときの単純な値の割り当てと考えてください。SelectedItem は実行時に変更されるため、プロパティ変更通知には実際のバインディングが必要です。

于 2011-09-12T17:55:54.763 に答える