title: Static property not updating in UI
body: <p>I spent the last hour(s) trying to find an answer in google and stackoverflow. I followed different advices &amp; suggestions, but nothing worked so far. My current code looks like this:</p>
  
  <pre><code>public class GlobalManager : ViewModelBase
  {
      static object _LockObject_GFS = new object();
      static double _GlobalFontSize;
      public static double GlobalFontSize
      {
          get
          {
              lock (_LockObject_GFS)
              {
                  _GlobalFontSize = GetGlobalResource&lt;double&gt;(LambdaHelper.MemberToString(() =&gt; GlobalFontSize));
                  return _GlobalFontSize;
              }
          }
          set
          {
              lock (_LockObject_GFS)
              {
                  if (_GlobalFontSize != value)
                  {
                      _GlobalFontSize = value;
                      SetGlobalResource(value, LambdaHelper.MemberToString(() =&gt; GlobalFontSize));
                      NotifyStaticPropertyChanged(() =&gt; GlobalFontSize);
                  }
              }
          }
      }
  }
  </code></pre>
  
  <p>The getter &amp; setter are both called. <code>NotifyStaticPropertyChanged</code> works and my UI does not update. I've added a <code>TextBlock</code> to check if it updates. Apparently it does not.</p>
  
  <pre><code>&lt;TextBlock Text="{Binding Path=(global:GlobalManager.GlobalFontSize), Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/&gt;
  </code></pre>
  
  <p>If I define a property in my VM (current DataContext), and bind it to a <code>TextBlock</code>, it updates correctly with the current value.</p>
  
  <p>Currently the <code>DependencyProperty</code> <code>Value</code> of a <code>Slider</code> is bound to this property in order to update the font size. (<code>IsSnapToTickEnabled="True"</code>)</p>
  
  <pre><code>public double GlobalFontSize
  {
      get { return GlobalManager.GlobalFontSize; }
      set { GlobalManager.GlobalFontSize = value; NotifyPropertyChanged(() =&gt; GlobalFontSize); }
  }
  </code></pre>
  
  <p>How do I get the binding to work correctly with the static property ? <em>The <code>StaticPropertyChanged</code> event is not null.</em></p>
  
  <pre><code>StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));
  </code></pre>
  
  <hr>
  
  <p>Edit 1:</p>
  
  <pre><code>public static void NotifyStaticPropertyChanged(string propertyName)
  {
      StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));
  }
  
  public static void NotifyStaticPropertyChanged&lt;T&gt;(Expression&lt;Func&lt;T&gt; &gt; property)
  {
      var expr = property.Body as MemberExpression;
      if (expr == null)
          throw new ArgumentException("Lambda does not contain member expression. () =&gt; MyClassOrObject.Property");
      NotifyStaticPropertyChanged(expr.Member.Name);
  }
  </code></pre>