следующее определение управления работает нормально:Свойство, установленное в стиле, не может быть отменено с привязкой в xaml?
<local:TextBoxEx Text="{Binding Title, UpdateSourceTrigger=PropertyChanged, Delay=900}"
Foreground="{Binding Selection.Error, Converter={StaticResource BoolToErrorBrush}}"/>
Когда я изменить его, используя стиль:
<Style x:Key="TextBoxTitle" TargetType="local:TextBoxEx">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<local:TextBoxEx Text="{Binding Text, RelativeSource={RelativeSource TemplatedParent}, UpdateSourceTrigger=PropertyChanged}"
Foreground="Blue"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<local:TextBoxEx Text="{Binding Title, UpdateSourceTrigger=PropertyChanged, Delay=900}"
Style="{StaticResource TextBoxTitle}"
Foreground="Pink"/>
Связывание с Заголовок отменит стиль связывания в текст и работает.
Настройка цвета переднего плана не имеет эффекта, он по-прежнему остается синим. Когда я использую Foreground="{TemplateBinding Foreground}"
в стиле controltemplate, он работает.
Я не могу понять это поведение, не так ли?
В первом случае локальное определение является ведущим, во втором - нет.
Моя проблема была в том, что я не получил разницу между TemplatedParent и ControlTemplate. – Gerard