title: How to have a WPF binding update every second?
body: <p>I want to show the user how many seconds have passed since some event occurs.  Conceptually, my view model has properties like this:</p>
  
  <pre><code>public DateTime OccurredAtUtc { get; set; }
  
  public int SecondsSinceOccurrence
  {
      get { return (int)(DateTime.UtcNow - OccurredAtUtc).TotalSeconds; }
  }
  </code></pre>
  
  <p>If I bind a <code>TextBlock.Text</code> property to <code>SecondsSinceOccurrence</code>, the value appears but it is static.  The passing of time does not reflect the increasing age of this event.</p>
  
  <pre><code>&lt;!-- static value won't update as time passes --&gt;
  &lt;TextBlock Text="{Binding SecondsSinceOccurrence}" /&gt;
  </code></pre>
  
  <p>I could create a timer in my view model that fires <code>PropertyChanged</code> every second, but there are likely to be many such elements in the UI (its a template for items in an <code>ItemsControl</code>) and I don't want to create that many timers.</p>
  
  <p>My knowledge of animation with storyboards isn't great.  Can the WPF animation framework help in this case?</p>