title: TreeViewItem can't update in BackgroundWorker
body: <p>I have this method to update my <code>TreeView</code>. If i don't use <code>BackgroundWorker</code> all works fine. But if do then my <code>TreeViewItem</code> doesn't update, but it's DataContex changes. Also this works fine: <code>item.IsEnabled = false;</code>      </p>
  
  <pre><code>private void twSports_Expanded(object sender, RoutedEventArgs e)    
  {       
  TreeViewItem item = e.OriginalSource as TreeViewItem;
  TreeLeaf leaf = item.DataContext as TreeLeaf;  var bgWorker = new BackgroundWorkerOnGrid(gridPartitions);
  bgWorker.DoWork += delegate(object s, DoWorkEventArgs args)
  {              
      if (leaf.Item != null)
      {
          if (leaf.Item.GetType() == typeof(SportType))
          {
              SportType sport = leaf.Item as SportType;
              args.Result = LoadSportPartitions(sport);
          }
          if (leaf.Item.GetType() == typeof(SportPartition))
          {
              SportPartition partition = leaf.Item as SportPartition;
              args.Result = LoadSportPartitions(partition);
          }
      }
  };
  
  bgWorker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
  {
      List&lt;SportPartition&gt; partitions = args.Result as List&lt;SportPartition&gt;;
  
      if (partitions != null)
      {
          leaf.LoadChilds(partitions.ToArray());    //it doesn't work
          item.IsEnabled = false; //it works
      }
  
      (s as BackgroundWorkerOnGrid).Dispose();
  };
  
  bgWorker.RunWorkerAsync(leaf.Item);}
  </code></pre>
  
  <p>Any ideas?</p>