DataTrigger no cambia la propiedad Text

Estoy intentando usar un disparador de datos en un estilo para cambiar una propiedad.

De conformidad con los requisitos ” Ejemplo mínimo, completo y verificable ” …

Para reproducir, primero crea una aplicación WPF en Visual Studio.

Dentro de la App.xaml.cs:

using System.ComponentModel; using System.Windows; namespace Foo{ ///  /// Interaction logic for App.xaml ///  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 de MainWindow.xaml:

   True      

Dentro de MainWindow.xaml.cs –

 using System.Windows; namespace Foo{ ///  /// Interaction logic for MainWindow.xaml ///  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 nota al margen: traté de establecer el valor del desencadenador de datos en solo "True" , y tampoco funcionó (el desencadenador no captó y el texto no cambió en función de establecer la propiedad a un nuevo valor).

Entonces, ¿por qué el disparador de datos no funciona o no funciona aquí? (¿Ya sea con el recurso estático o el valor literal)? Aún más relevante: ¿por qué recibo este error? El “Después de un ‘DataTrigger’ está en uso (sellado), no se puede modificar” ¿error? ¿Y cuál es el método adecuado para lograr lo que estoy tratando de hacer aquí? (Preferiblemente aún usando un disparador de datos y no un convertidor, ya que necesito cambiar entre dos valores).

El valor local asignado a la propiedad TextBlock’s Text tiene mayor prioridad que el valor proporcionado por Setter en DataTrigger. Consulte Precedencia del valor de la propiedad de dependencia para obtener más información.

Establezca el valor de Texto inicial por otro Setter:

       

El mensaje de error que ve cuando usa el recurso booleano es solo el que se queja el diseñador de XAML. No hay error en el tiempo de ejecución.