DataTrigger não altera a propriedade Text

Estou tentando usar um gatilho de dados em um estilo para alterar uma propriedade.

Em conformidade com o "Exemplo mínimo, completo e verificável"requisitos ...

Para reproduzir, primeiro crie um aplicativo WPF no Visual Studio.

Dentro do App.xaml.cs:

using System.ComponentModel;
using System.Windows;

namespace Foo{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application, INotifyPropertyChanged {
        private bool _clicked;
        public bool Clicked {
            get { return this._clicked; }
            set {
                this._clicked = value;
                this.PropertyChanged?.Invoke(
                    this, new PropertyChangedEventArgs( "Clicked" ) );
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;
    }
}

Dentro do MainWindow.xaml:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:lib="clr-namespace:System;assembly=mscorlib"
    xmlns:local="clr-namespace:Foo"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    mc:Ignorable="d" x:Class="Foo.MainWindow"
    Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <lib:Boolean x:Key="True">True</lib:Boolean>
    </Window.Resources>
    <Grid>
        <Button x:Name="button" Click="button_Click">
            <Viewbox>
                <TextBlock Text="Unclicked">
                    <TextBlock.Style>
                        <Style TargetType="{x:Type TextBlock}">
                            <Style.Triggers>
                                <DataTrigger
                                        Binding="{Binding
                                            Clicked,
                                            Source={x:Static Application.Current}}"
                                            Value="{StaticResource True}">
                                    <Setter Property="Text" Value="Clicked" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </TextBlock.Style>
                </TextBlock>
            </Viewbox>
        </Button>
    </Grid>
</Window>

Dentro do MainWindow.xaml.cs -

using System.Windows;

namespace Foo{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
        public MainWindow( ) {
            InitializeComponent( );
        }

        private void button_Click( object sender, RoutedEventArgs e ) {
            ( Application.Current as App ).Clicked = !( Application.Current as App ).Clicked;
        }
    }
}

Como uma observação lateral - tentei definir o valor do gatilho de dados para apenas"True", e isso também não funcionou (o gatilho não foi capturado e o texto não foi alterado com base na configuração da propriedade com um novo valor).

Então, por que o gatilho de dados não está pegando ou funcionando aqui? (Com o recurso estático ou o valor literal)? Ainda mais relevante - por que estou recebendo esse erro? O erro "Depois que um 'DataTrigger' está em uso (selado), não pode ser modificado"? E qual é o método adequado para realizar o que estou tentando fazer aqui? (De preferência, ainda usando um gatilho de dados e não um conversor, pois preciso alternar entre dois valores).

questionAnswers(1)

yourAnswerToTheQuestion