title: ContentPresenter not updating display correctly
body: <p>In my program's main window I have a <code>TreeView</code> and a <code>ContentPresenter</code>. The display of the <code>ContentPresenter</code> is determined by what node is selected in the <code>TreeView</code>. </p>
  
  <p>The name of one of my nodes is allowed to be changed by the user via <code>contentMenu</code>. All the user has to do is right click the node and select the new name out of the choices. The <code>ContentPresenter</code> is supposed to have a null display until the user chooses a name for the node. </p>
  
  <p>The problem occurs when a new name is selected from the <code>contentMenu</code>. The <code>ContentPresenter</code>'s display changes, like it should, but only after the user selects a different node (changing the display), and then re-selects the original node.</p>
  
  <p>How do I make it so that the display on the <code>ContentPresenter</code> changes right when the <code>TreeView</code> node's name is changed?</p>
  
  <p><strong>TreeViewViewModel:</strong></p>
  
  <pre><code>public class TreeViewViewModel : PropertyChangedBase
  {
       public TreeViewViewModel()
       {
            Node = new Node() { NodeName = "Blank", NodeDataModel = new NodeModel(),
                  Commands = { new Command(nodeType_name1), new Command(nodeType_name2) } };
       }
  
       //These functions call to the NodeName property in the TreeView's Data Model
       private void nodeType_name1()
       {
            Node.NodeName = "Name1";
       }
  
       private void nodeType_name2()
       {
            Node.NodeName = "Name2";
       }
  }
  </code></pre>
  
  <p><strong>XAML for MainWindow:</strong></p>
  
  <pre><code>&lt;!-- Tree view items &amp; Functions --&gt;
  &lt;TreeView Name="Tree_One" ItemsSource="{Binding DataTree.Data}" ... &gt;
       &lt;TreeView.Resources&gt;
             &lt;SolidColorBrush Color="LightSkyBlue" x:Key="{x:Static SystemColors.HighlightBrushKey}" /&gt;
       &lt;/TreeView.Resources&gt;
   &lt;/TreeView&gt;
  
   &lt;!--- Left Widget --&gt;
   &lt;ContentPresenter Content="{Binding LeftWidget}" /&gt;
  </code></pre>
  
  <p><strong>MainWindowViewModel:</strong></p>
  
  <pre><code>public class MainWindowViewModel : PropertyChangedBase
  {
       private TreeViewViewModel _dataTree;
  
       public MainWindowViewModel()
       {
            _dataTree = new TreeViewViewModel();
       }
  
       public TreeViewViewModel DataTree { ... }
  
       //This function is in charge of changing the display of the ContentPresenter
       // I think that my problem can probably be solved by doing something here
       public void ChangeViews()
       {
            if (_dataTree.SelectedItem is Node)
            {
                 var _node = _dataTree.SelectedItem as Node;
                 var nodeViewModel = new NodeViewModel(_node.NodeDataModel);
  
                 if (_node.NodeName== "Unknown")
                      LeftWidget = null; //This is the Content Presenter **
                 if (_node.NodeName == "Name1")
                 {
                     LeftWidget = nodeViewModel;
                 }
  
                 if (_node.NodeName == "Name2") {...}
            }
       }
  }
  </code></pre>