Я хочу изменить значок кнопки ToggleButton (содержимое Fluent RibbonBar ) в зависимости от его свойства IsChecked. Теперь я написал следующий фрагмент стиля:
<Fluent:ToggleButton.Style>
<Style BasedOn="{StaticResource RibbonButtonStyle}" TargetType="{x:Type Fluent:ToggleButton}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Fluent:ToggleButton}}, Path=IsChecked}" Value="False">
<Setter Property="Icon" Value="{StaticResource ResourceKey=Style.Images.Pined}"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Fluent:ToggleButton}}, Path=IsChecked}" Value="True">
<Setter Property="Icon" Value="{StaticResource ResourceKey=Style.Images.Unpined}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Fluent:ToggleButton.Style>
Проблема в том, что триггер плохо загружает изображение. Проблема не в том, что IsChecked не актуализирует себя, я уже проверял это. И также я не устанавливаю свойство icon где-либо еще. Ресурсы изображений также работают нормально, если я использую их в другом месте.
Информация для перестроения: я поместил ToggleButton в Backstage в качестве DataTemplate RibbonListBox, помещенного в BackstageTabItem.