title: Textbox won't update until method done
body: <p>I am trying to use a textbox to show Tasks completing.  Basically like how console application would show what is happening.</p>
  
  <p>However the text in the textbox is only updating after Window_Loaded_1 has completed, then all the text gets displayed instead of in realtime.</p>
  
  <p>xaml code:</p>
  
  <pre><code>&lt;Window x:Class="timelineTesting.Windows.CreateNewProject"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="CreateNewProject" Height="300" Width="579" Loaded="Window_Loaded_1"&gt;
  &lt;Grid&gt;
      &lt;Grid.RowDefinitions&gt;
          &lt;RowDefinition/&gt;
      &lt;/Grid.RowDefinitions&gt;
      &lt;TextBox Text="{Binding Path=LogData, UpdateSourceTrigger=PropertyChanged}" /&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p></p>
  
  <p>C# code:</p>
  
  <pre><code>public partial class CreateNewProject : Window, INotifyPropertyChanged
  {
      private string _data;
      public String LogData
      {
          get
          {
              return _data;
          } 
          set
          {
              _data = value;
              OnPropertyChanged("LogData");
          }
      }
  
      public CreateNewProject()
      {
          InitializeComponent();
          this.DataContext = this;   
      }
  
      private void Window_Loaded_1(object sender, RoutedEventArgs e)
      {
          Task t = new Task(() =&gt; Directory.CreateDirectory(this.ProjectName));
  
          LogData+="Starting new project creation...." + Environment.NewLine;
          LogData += "Creating project directory '" + ProjectName + "'....";
          try
          {
              t.Start();
              t.Wait();
          }
          catch (Exception ex)
          {
              LogData += "Error:" + Environment.NewLine;
              LogData += ex.InnerException.ToString();
          }
  
          LogData+= "Done!" + Environment.NewLine;
  
          t = new Task(() =&gt; File.Copy(this.VideoFilePath, newVideoPath));
          LogData+= "Copying video file to project directory....";
          try
          {
              t.Start();
              t.Wait();
          }
          catch (Exception ex)
          {
              LogData+= "Error:" + Environment.NewLine;
              LogData+= ex.InnerException.ToString();
          }
  
          LogData+= "Done!" + Environment.NewLine;
          // many more tasks
      }
  
      public event PropertyChangedEventHandler PropertyChanged;
  
      protected virtual void OnPropertyChanged(string propertyName)
      {
          PropertyChangedEventHandler handler = this.PropertyChanged;
          if (handler != null)
          {
              handler(this, new PropertyChangedEventArgs(propertyName));
          }
      }
  </code></pre>