title: DataTrigger does not change Text property
body: <p>I'm attempting to use a data-trigger on a style to change a property. </p>
  
  <p>In compliance with the "<a href="https://stackoverflow.com/help/mcve">Minimal, Complete and Verifiable Example</a>" requirements...</p>
  
  <p>To reproduce, first create a WPF application in Visual Studio.</p>
  
  <p>Within the App.xaml.cs : </p>
  
  <pre><code>using System.ComponentModel;
  using System.Windows;
  
  namespace Foo{
  /// &lt;summary&gt;
  /// Interaction logic for App.xaml
  /// &lt;/summary&gt;
  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;
      }
  }
  </code></pre>
  
  <p>Within the MainWindow.xaml : </p>
  
  <pre><code>&lt;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"&gt;
      &lt;Window.Resources&gt;
          &lt;lib:Boolean x:Key="True"&gt;True&lt;/lib:Boolean&gt;
      &lt;/Window.Resources&gt;
      &lt;Grid&gt;
          &lt;Button x:Name="button" Click="button_Click"&gt;
              &lt;Viewbox&gt;
                  &lt;TextBlock Text="Unclicked"&gt;
                      &lt;TextBlock.Style&gt;
                          &lt;Style TargetType="{x:Type TextBlock}"&gt;
                              &lt;Style.Triggers&gt;
                                  &lt;DataTrigger
                                          Binding="{Binding
                                              Clicked,
                                              Source={x:Static Application.Current}}"
                                              Value="{StaticResource True}"&gt;
                                      &lt;Setter Property="Text" Value="Clicked" /&gt;
                                  &lt;/DataTrigger&gt;
                              &lt;/Style.Triggers&gt;
                          &lt;/Style&gt;
                      &lt;/TextBlock.Style&gt;
                  &lt;/TextBlock&gt;
              &lt;/Viewbox&gt;
          &lt;/Button&gt;
      &lt;/Grid&gt;
  &lt;/Window&gt;
  </code></pre>
  
  <p>Within the MainWindow.xaml.cs - </p>
  
  <pre><code>using System.Windows;
  
  namespace Foo{
  /// &lt;summary&gt;
  /// Interaction logic for MainWindow.xaml
  /// &lt;/summary&gt;
  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;
          }
      }
  }
  </code></pre>
  
  <p>As a side note - I tried setting the value of the data trigger to just <code>"True"</code>, and that also did not work ( the trigger did not catch, and text did not change based on setting the property to a new value ).</p>
  
  <p>So why is the data-trigger not catching or working here? ( Either with the static resource or the literal value )? Even more relevant - why am I getting this error? The "After a 'DataTrigger' is in use (sealed), it cannot be modified" error? And what is the proper method of accomplishing what I am trying to do here? ( Preferably still using a data-trigger and not a converter, since I do need to switch between two values ).</p>