Более уместный вопрос: почему у вас DataTrigger
в вашем ControlTemplate
?Это создает зависимость между элементом управления и его контекстом данных, поэтому вы сталкиваетесь с этой проблемой, когда ваш контекст данных не соответствует ожиданиям шаблона элемента управления.
Вы уверены, что не можете использовать более подходящий механизм?Например, вы могли бы вместо этого использовать стиль для тех кнопок, где IsSelected
должен влиять на Background
?
<Style x:Key="SpecialButtonStyle" TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
...
<Button DataContext="relevant data context" Style="{StaticResource SpecialButtonStyle}"/>
Или, что еще лучше, вы могли бы определить шаблон данных для определенного класса данныхкоторый имеет свойство IsSelected
?Этот шаблон данных может автоматически использовать правильный стиль Button
.