【发布时间】:2017-06-19 20:33:07
【问题描述】:
我的Application.Resources ResourceDictionary 中的一个条目是一个控件模板,经过精简后,看起来类似于以下内容:
<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>
如何修复第一个示例中的绑定?最好我不希望用户控件中每个控件的实例上都需要额外的属性。
【问题讨论】:
标签: c# wpf xaml data-binding