私Application.Resources
ResourceDictionary
のエントリがスリム化、コントロールテンプレートでは、次のようになります。RelativeSourceバインディングスタイルの作品ではないのControlTemplate
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border>
<Border.BorderBrush>
<SolidColorBrush Color="{Binding Path=BorderColor, RelativeSource={RelativeSource AncestorType=UserControl}" />
</Border.BorderBrush>
</Border>
</ControlTemplate>
各UserControl
は独自の性質を持っている、これはからプルBorderColor
。この例では、バインディングはプロパティを見つけることができません。
は ' 'RelativeSource FindAncestor、AncestorType =' System.Windows.Controls.UserControl'、 AncestorLevel = '1' の参照との結合のためのソースを見つけることができません。
しかし、それは辞書内の別のエントリで動作します:
<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="BorderBrush" Value="{Binding Path=BorderColor, RelativeSource={RelativeSource AncestorType=UserControl}"/>
</Style>
私は最初の例では結合を解決することができますか?私は、ユーザーコントロールの各コントロールのインスタンスに追加のプロパティを必要としないことをお勧めします。
私は最初の例のように「スタイル」にするためにテンプレートをいくつか再編集しました。 'TemplateBinding'を使って作業しました、ありがとう!今それを動的に更新するには... – Dan