title: DependencyObject.InvalidateProperty not working
body: <p>Based on the <a href="http://msdn.microsoft.com/en-us/library/system.windows.dependencyobject.invalidateproperty.aspx" rel="noreferrer">documentation</a> via MSDN...</p>
  
  <blockquote>
    <p>You can also use InvalidateProperty to
    force re-evaluation of a binding
    against a data source that is not able
    to implement the recommended
    INotifyPropertyChanged notification
    mechanism...</p>
  </blockquote>
  
  <p>...the code below should work, yet it doesn't.</p>
  
  <pre><code>public partial class Window1 : Window
  {
      private Payload _payload = new Payload();
  
      public Window1()
      {
          InitializeComponent();
  
          this.DataContext = _payload;
      }
  
      private void Invalidate(object sender, RoutedEventArgs e)
      {
          _payload.Timestamp = DateTime.Now.Add(TimeSpan.FromHours(1)).ToLongTimeString();
  
          Button b = sender as Button;
          b.InvalidateProperty(Button.ContentProperty);
      }
  }
  
  public class Payload
  {
      private String _payload = DateTime.Now.ToLongTimeString();
      public String Timestamp 
      {
          get
          {
              return _payload;
          }
          set
          {
              _payload = value;
          }
     }
  }
  
  &lt;Grid&gt;
      &lt;Button Click="Invalidate"
              Width="100" 
              Height="50" 
              Content="{Binding Path=Timestamp}"/&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p>Any idea what is causing this behavior?</p>